使用Formsets和JavaScript在Django中动态添加表单

本教程演示了如何使用Django表单集和JavaScript将表单的多个副本动态添加到页面并进行处理。

在Web应用程序中,如果用户正在输入数据以将对象添加到数据库中,则用户可能需要连续多次提交相同的表单。 Django不必一遍又一遍地提交相同的表单,而是允许我们使用表单集将相同表单的多个副本添加到网页。

我们将通过观鸟应用程序演示此操作,以跟踪用户看到的鸟类。 它仅包括两页,一个包含鸟类列表的页面和一个将鸟类添加到列表的表单的页面。 您可以在GitHub上查看此示例的完整源代码。

对于本教程,对以下内容有一个基本的了解会有所帮助:

Django表格
基于Django[……]

继续阅读

如何使用Django发送电子邮件和附件

在本文中,我们将学习如何在Django项目中设置电子邮件。 Django使发送电子邮件变得方便,并提供了满足我们需求的各种方法。

在我们开始之前,我们必须在settings.py文件中设置电子邮件设置。

在settings.py文件中,我使用了EMAIL_HOST =’smtp.sendgrid.net’,也可以使用任何其他smtp主机,例如google smtp或任何其他主机。

我们已经创建了一个名为test_email的应用程序,并且已从该应用程序导入了视图,并且不要忘记在已安装的应用程序中包含test_em[……]

继续阅读

让我们使用Django,vuejs,Django rest框架和jwt构建音乐流应用程序-2

在上一篇文章中,我们已经使用Django和DRF成功构建了基本API。 在这篇文章中,我们将添加身份验证并准备好我们的API。接下来我们将使用 Django-allauth, 因为能节省我们完全从头开始编写用户模型的时间, Django rest auth将我们的allauth模型转换为JSON可序列化。

让我们先安装:

然后将这些应用程序添加到api / Settings.py中的“中
Django-allauth使用用户名作为必填且唯一的字段,我想通过将BaseUserManager扩展到我们的CustomUse[……]

继续阅读

让我们使用Django,vuejs,Django rest框架和jwt构建音乐流应用程序

这篇文章将构建一个提供音乐的简单音乐API。 我将选择Django rest框架,因为它易于开发。

开发目标:在本教程结束时,将拥有一个简单的音乐API,具有用户管理(登录,注册)和JSON Web令牌(JWT),以提高安全性。 如果不熟悉API开发,建议先看几篇基础文章。

开始 :
对于这个项目,我正在使用Python 3.6.9和Django版本3.0.8。
让我们创建一个虚拟环境。

安装django和drf

创建项目:
[crayo[……]

继续阅读

Django如何配置NGINX的详细信息

您正在尝试将Django Web应用程序部署到Internet。 您以前从未做过此事,因此请遵循这样的指南。 该指南为您提供了许多说明,其中包括安装和配置“ NGINX反向代理”。 在某个时候,你喃喃自语:

什么是NGINX? 恩,随便吧,让我们继续阅读。

您必须将一些奇怪的gobbledygook复制粘贴到文件中,如下所示:

这些东西到底是什么? 应该怎么办?

大多数人将第一次Django部署作为学习练习。 您想了解自己在做什么,以便在遇到困难时可以解决问题,因此以后无需依赖指南。 在本文中,我将分解该N[……]

继续阅读

Django在生产环境中的最小Websockets设置

背景
我有一个用于基础数据库表的Handsontable实现。即“外观和感觉就像电子表格的JavaScript数据网格”。

在其他浏览器选项卡/窗口中打开工作表时,对一张纸上的单元格所做的更改应在其他用户的同一张纸上反映出来。

这要求使用Web套接字进行“服务器端推送”。即服务器需要推送通知以打开“客户端”。

另一种方法是让客户端浏览器进行Ajax轮询以进行更改。但这比较浪费。仅在保存有效更改后更新工作表!

团队内部使用此应用程序。使用量不超过十个并发用户。这意味着:

一个处理Web套接字请求的过程就足够了。
没有进行真正的性能测试。
选择daphne
在[……]

继续阅读

如何在零停机时间内实现Django索引定义的现代化

如果您最近阅读过Model.Meta.index_together的Django文档,则可能已经注意到以下说明:

请改用索引选项。 较新的索引选项比index_together提供更多功能。 index_together将来可能会被弃用。

Django历史上为Field(db_index = True)的单个字段以及Meta.index_together中的多个字段提供了索引控制。 这些选项非常适合为一个或多个字段指定索引,但是它们不能让您访问数据库索引的全部功能。

Django 1.11(2017)中添加了Meta.indexes选项,以允许通过Index()类使用更多索引[……]

继续阅读

How to use Swagger with Python based Django REST APIs

在本教程的这里,我将向您展示如何在Django REST框架中使用Swagger API。Swagger API为REST API端点提供了结构良好的文档,因此新手可以说如何在不了解其内部实现的情况下测试REST API。

本质上,Swagger做的是简单但非常强大的事情:通过添加一些附加注释,它会生成REST API描述,例如HTTP方法,路径/查询/表单参数,响应,HTTP错误代码等),甚至提供了一个简单的Web UI来玩对您的API的REST调用。

Swagger规范是描述RESTful API的强大定义格式,它创建RESTful接口,通过有效地映射与之关联的所有资源和操作来[……]

继续阅读

Kubernetes认证

Kubernetes使用三个步骤来强制执行安全性访问和权限-身份验证,授权和准入。 在本文中,我们将首先考虑身份验证。

身份验证中的第一件事是身份。

身分识别
Kubernetes假定“用户”在Kubernetes之外进行管理。在生产环境中,它可以是用于身份管理的LDAP(轻型目录访问协议),SSO(单点登录),Kerberos或SAML(安全断言标记语言)。

在开发或测试环境中,可以使用其他身份验证策略。

认证策略
Kubernetes使用身份验证代理,bearer tokens,客户端证书或HTTP基本授权来通过身份验证插件对API请求进行身份验证。在向API服[……]

继续阅读