理解Django中基于类的视图-视图基类

基于类的视图或CBV是Django中争议最大的功能之一。与基于功能的视图(FBV)相比,CBV似乎更令人困惑和难以理解。在本系列的Django中的《理解基于类的视图》中,我们将详细介绍CBV,以了解它们的工作方式和使用方法。

首先,我们将介绍View基类,如何在URLconf中使用CBV以及View类如何路由从其继承的其他类的视图逻辑。

先决条件
本文针对那些以前可能尝试使用CBV并希望了解其工作原理的人。如果您满足以下条件,您将从本文中获得最大收益:

之前已经用Django建立了一个项目
尝试至少使用一次CBV
对Python中的类有基本的了解
本文包含许多不完整的[……]

继续阅读

如何在django官方文档中快速找到需要的内容

许多新手程序员发现Django文档内容非常庞大。

假设想学习如何为用户执行登录。看着很简单:登录是Django的核心功能。如果搜索“ django登录”或搜索文档,则会看到一些选项,其中“使用Django身份验证系统”是最有希望的结果。单击该链接,很高兴地预料到登录问题将很快就会搞定,但这39页的页面估计会被吓一跳,信息太多了。

另外,也可以在django.contrib.auth上找到一些参考,所有auth内容都在这里,如果浏览此页面,将看到所有不同身份验证模型,字段和功能的罗列,但没有说明它们应该如何组合在一起。

在这时,我们可能想绝望的关闭浏览器,搞得自己要重新考虑学习[……]

继续阅读

如何配置Elasticsearch堆大小以更改最大内存大小

对于ElasticSearch,这是非常重要的设置。为了正确设置此设置,必须对系统进行良好的监视。简而言之,我们使用此配置来确定Elasticsearch在开始时分配的内存量以及最大内存使用量。

在配置堆大小之前,我将讨论堆内存概念以正确地监视堆大小。 Java应用程序使用“堆栈”和“堆”方法将数据保存到内存中。

在堆栈类型中,操作系统管理是否将数据存储或删除到内存中。

在堆类型中,应用程序管理内存使用和清理。在Java中,对象存储在堆内存中,并且由于有了称为垃圾收集器的结构,因此可以提供堆内存管理。

什么是垃圾收集器?

在Java中,内存管理是通过JVM和其中包[……]

继续阅读

如何在Django Framework中设置特定环境的配置?

对于初学者,每当键入python manage.py runserver时,它将从settings.py中获取所有配置。 settings.py具有所有配置,例如已安装的应用程序,使用的中间件,模板,语言,时区,静态文件夹的位置等。通常,我们刚开始不必太多修改settings.py文件。因为Django框架提供了在本地环境中运行应用程序的样板或基本配置。

 

为什么我们需要特定于环境的设置?

我们settings.py中有某些配置,例如DEBUG,STATIC_URL,DATABASES,SECRET_KEY,ALLOWED_HOSTS等。这些设置实际上是在部署到生[……]

继续阅读

使用Prometheus进行Kubernetes监控

监控是运维中至关重要的工作,对于像Kubernetes这样的当下风行的技术来说,强大的监控设置可以充分了解整个集群的机器状态,包括主机的基础性能,Pod资源利用率等。

今天,我们将在不到5分钟的时间内部署基于生产级Prometheus的监控系统。

前期准备条件:

1、运行具有至少6个内核和8 GB可用内存的Kubernetes集群。在本教程中,我将使用6个Node节点
2、Kubernetes部署和服务的工作知识。
步骤:

1、具有持久卷的Prometheus服务器。这将是我们的指标存储(TSDB)。
2、Alertmanager服务器,它将触发对Slack /[……]

继续阅读

在没有模拟的情况下在Django中测试Elasticsearch

介绍
这应该是一篇简短的文章-我最近在工作中继承了Django项目,其中Elasticsearch是主要组件。
在代码库中,有大量的辅助函数可构造如下所示的Elasticsearch查询DSL。

尽管上面的示例似乎很简单,但是Elasticsearch查询的JSON主体可能变得非常大而复杂。 作为Elasticsearch的相对入门者,我几乎没有信心更改任何涉及这些辅助功能的代码。
虽然在代码库中存在预先存在的测试,但所有测试都模拟了这些Elasticsearch帮助器功能。
[crayon-66238d7fdd85[……]

继续阅读

git日常命令大全(附流程图)

CREATE

From existing data

From Existing repo

Remove repository from existing local data

UPDATE

Fetch latest changes from origin

[crayon-66238d7fddc8d12816[……]

继续阅读

Django 3.1中的异步视图

编写异步代码能够毫不费力地加速应用程序。 随着Django 3.1最终支持异步视图,中间件和测试,现在是将它们置入现实的好时机。

这篇文章探讨了如何开始使用Django的新异步视图。

如果想了解有关异步代码背后的强大功能以及Python中线程,多处理和异步之间的区别的更多信息,请查看我的《通过并发,并行和异步编写Speeding Up Python》。

目标
在这篇文章的结尾,您应该能够:

在Django中编写异步视图
在Django视图中发出非阻塞HTTP请求
使用Django的异步视图简化基本的后台任务
使用sync_to_async在异步视图内进行同步调用[……]

继续阅读

Django 3中的自定义用户模型

介绍
嗨,在这篇文章中,我们将学习在Django 3中创建自定义用户模型,并且还将更改Django Admin的默认登录功能。 我们将使用电子邮件和密码登录。
动机
我必须为我的应用程序创建一个“自定义用户”,我能够创建模型,但问题是createsuperuser命令无法正常工作。 为了调试它,我不得不做大量研究,问题是当时大多数资源已经过时,所以我决定写这篇文章。
我做了一个GitHub仓库,所以如果您愿意,可以直接使用它(这里有说明)

让我们开始吧
首先,创建一个Django Project并创建一个名为users的应用程序
现在我们可以开始在用户应用程序中编辑model[……]

继续阅读

Django 3.1中的WebSockets

我们使用Django作为主要的Web开发框架,并且喜欢简单。
在本文中,我将指导您如何在不安装第三方应用程序的情况下在Django应用程序中启用WebSockets。
Django从3.0版开始引入了ASGI接口,在3.1版中引入了异步视图。 我们的解决方案将基于异步视图。 在本教程中,我们将使用Python 3.7和Django 3.1。

WebSockets ASGI界面简介
ASGI是已经使用了多年的WSGI协议的替代协议,并且将在接下来的2-3年内成为Python Web框架中的事实上的标准。
那么,WebSocket在这种情况下如何工作?让我们找到它!
WebSock[……]

继续阅读