7.6 KiB
Django 扩展–安装和实现扩展
在本文中,我们将看到 Django 扩展功能扩展了 Django 中默认提供的功能。
各种重要的 Django 扩展
提供的各种重要扩展如下:
- 管理扩展
- 命令扩展
- 调试器标签
- 字段扩展
- 模型扩展
- 验证器
- Powershell
下表给出了详细的分析
1.管理扩展
一些重要的扩展包括:
| 延长 | 描述 |
|---|---|
| foreign keyautocompleteadmin | 允许管理应用程序显示带有搜索输入字段的外键字段。 |
| foreinkeyautocompletestackedinline | |
| 和foreinkeyautocompletetabularinline | 类似于 AutocompleteAd,这两个类为 AdminInline 类中的外键字段启用搜索输入字段 |
Admin Extensions
2.命令扩展
一些最常用的命令扩展是:
| 延长 | 描述 |
|---|---|
| Shell_plus | Django shell 的增强版;已经自动加载了所有的模型,因此我们可以马上使用 ORM。 |
| 创建 _ 模板 _ 标签 | 在指定的应用程序中生成模板标记目录结构 |
| 生成 _ 密码 | 它会生成一个可用作用户密码的新密码。 |
| 导出 _ 电子邮件 | 以下列格式之一导出电子邮件地址–Google、Outlook、LinkedIn 和 VCard |
| 图形 _ 模型 | 它为应用程序创建了一个 GraphViz 点文件。它将应用程序的模型(通过)合并成一个单一的模型。输出通常指向一个点文件。 |
| 运行 _ 脚本 | 在姜戈运行一个脚本 |
| sql_create | 按照 settings.py 中的指定,生成创建数据库的 SQL。 |
Command Extensions
在后面的章节中,我们将会看到更多关于 shell–shell _ plus的内容。
3.调试器标记
有了调试器标签,我们可以轻松调试 Django 模板。这些模板标签提供了三个过滤器——IPDB、PDB 或 WDB
语法是:
{% load debugger_tags %}
{% for object in objects %}
{{object | ipdb/pdb/wdb }}
{% endfor %}
| 过滤器 | 描述 |
|---|---|
| IPDB | 它是一个 Ipython 调试器工具,与 Ipython 一起使用来调试模型对象(与它一起使用) |
| 物理数据库 | 调试模型对象是普通的 Python 调试器 |
| WDB | 它是一个 Web 调试器工具,用于通过浏览器本身调试基于 python 的应用程序。 |
Debugger Tags
**注意:**要使用过滤器,我们需要在模板文件的顶部加载调试器标签
{% load debugger_tags %}
4.字段扩展
一些有用的字段扩展包括:
| 随机场 | 创建具有指定长度的唯一随机字符 |
| 日期时间字段 | 当对象首次保存到数据库时,DateTimeField 自动设置其日期 |
| JSONField | 这个文本字段整齐地序列化/反序列化 JSON 对象 |
Field Extensions
5.模型扩展
这些是重要的模型扩展:
| 延长 | 描述 |
|---|---|
| ActivatorModel | 这个抽象基类提供了一个状态、激活日期和去激活日期 |
| TitleDescriptionModel | 这个抽象基类模型提供了 title 字段,它是一个最大长度为 255 的不可空 CharField,以及一个可空描述字段。 |
Modle Extensions
6.验证器
Django 扩展提供的一些重要的验证器是:
| 延长 | 描述 |
|---|---|
| 无控制字符验证计算机 | 该属性确保了像新行或制表符这样的控制字符是而不是所允许的。 |
| NoWhitespaceValidator | 这个属性确保了开头和结尾的空格是允许的而不是。 |
| HexValidator | 确保该字符串是有效的十六进制字符串。也可以选择指定长度、最小长度和最大长度参数 |
Validators
安装 Django 扩展
我们可以使用 pip 命令本身安装扩展。运行代码
pip install django-extensions
我们还需要在 settings.py 中提到 Django 扩展。所以只需在 INSTALLED_APPS 目录中添加以下内容。
INSTALLED_APPS = [
#......
#......
#......
'django_extensions'
]
就这样,Django 扩展已经可以使用了。
实现 Django 扩展
现在我们将看到如何在 Django 项目中使用重要的扩展
1.实施管理扩展
考虑我们在上一篇文章中构建的 BlogModel,在 models.py 文件中有以下字段
from django.db import models
class BlogModel(models.Model):
id = models.IntegerField(primary_key=True)
blog_title = models.CharField(max_length=20)
blog = models.TextField()
def __str__(self):
return f"Blog: {self.blog_title}"
此外,考虑一个 CommentModel ,它包含来自 BlogModel 表的特定博客的评论。在 models.py 文件中的BlogModel 下添加注释模型:
class CommentModel(models.Model):
your_name = models.CharField(max_length=20)
comment_text = models.TextField()
blog = models.ForeignKey('BlogModel', on_delete=models.CASCADE)
def __str__(self):
return f"Comment by Name: {self.your_name}"
注意, blog 字段是连接 BlogModel 的 FK。现在,在 admin.py 文件中,我们将对评论模型模板应用管理扩展。
from .models import *
from django_extensions.admin import ForeignKeyAutocompleteAdmin
@admin.register(CommentModel)
class BookModelAdmin(ForeignKeyAutocompleteAdmin):
related_search_fields = {
'blog':('blog_title',)
}
#Fields
fields =('your_name','comment_text','blog')
有关管理模板的更多信息,请查看管理模板一文
现在运行服务器并转到管理站点
Admin Extensions
查看搜索选项如何出现在 FK 博客字段中。
2.用 Ipython 实现 shell_plus
要用 Ipython 运行 shell_plus,我们首先需要安装它。
Ipython 是一个为 python 打造的交互式 shell。它使得 shell 环境高效且易于使用。它提供了我们可以使用的有用的环境工具和命令。
要安装 IPython,请运行以下命令:
pip install ipython
现在使用下面的命令运行 shell_plus 和 ipython
python manage.py shell_plus --ipython
Shell Plus With Ipython
看,项目中的所有模型都自动加载到 shell 中。
其他一些重要的扩展
我们现在将在这里看到一些最常用的扩展
1.RandomCharField 扩展
您可以使用下面的命令在您的模型中添加该字段:
from django.db import models
from django_extensions.db.fields import RandomCharField
class ModelName(models.Model):
Field1 = RandomCharField(length=12, unique =True, include_punctuation=True)
2.验证器
在 models.py 中这个扩展的语法是:
from django_extensions.validators import HexValidator
class ModelName(models.Model):
Field1 = models.CharField(max_length=80, validators=[HexValidator(length=64)])
结论
就这样,伙计们!!这都是关于 Django 扩展的。我希望您已经获得了关于这些扩展的良好知识。请务必查看其他 Django 扩展的官方文档。
我们已经结束了 Django 系列教程。一定要看看我们关于 Django 的其他文章。继续编码!!

