Python 教程之 Django(4)从模型创建 Django 表格

简介: Python 教程之 Django(4)从模型创建 Django 表格

Django 模型窗体是一个用于将模型直接转换为Django形式的类。如果您正在构建一个数据库驱动的应用程序,那么您很可能拥有与Django模型非常接近的表单。现在,当我们的项目准备就绪时,在geeks/models.py 中创建一个模型,

# 从内置库中导入标准 Django 模型
from django.db import models
# 声明一个名为“GeeksModel”的新模型
class GeeksModel(models.Model):
    # 模型的字段
  title = models.CharField(max_length = 200)
  description = models.TextField()
  last_modified = models.DateTimeField(auto_now_add = True)
  img = models.ImageField(upload_to = "images/")
    # 使用模型的标题名称重命名模型的实例
  def __str__(self):
    return self.title

若要直接为此模型创建表单,请深入了解 geeks/表单.py并输入以下代码:

# 从 Django 导入表单类
from django import forms
# 从 models.py 导入 GeeksModel
from .models import GeeksModel
# 创建 ModelForm
class GeeksForm(forms.ModelForm):
  # specify the name of model to use
  class Meta:
    model = GeeksModel
    fields = "__all__"

现在访问 http://127.0.0.1:8000/

基本表单数据类型和字段列表

表单中最重要的部分也是唯一必需的部分是它定义的字段列表。字段由类属性指定。以下是 Django 中使用的所有表单字段类型的列表

名字 输入
BooleanField class BooleanField(**kwargs) 复选框输入
CharField class CharField(**kwargs) 文本输入
ChoiceField class ChoiceField(**kwargs) Select
TypedChoiceField class TypedChoiceField(**kwargs) Select
DateField class DateField(**kwargs) 日期输入
DateTimeField class DateTimeField(**kwargs) DateTime输入
DecimalField class DecimalField(**kwargs) 当 Field.localize 为 False 时,数字输入,否则文本输入
DurationField class DurationField(**kwargs) 文本输入
EmailField class EmailField(**kwargs 电子邮件输入
FileField class FileField(**kwargs) 可清除文件输入
FilePathField class FilePathField(**kwargs) Select
FloatField class FloatField(**kwargs) 当 Field.localize 为 False 时,数字输入,否则文本输入
ImageField class ImageField(**kwargs) 可清除文件输入
IntegerField class IntegerField(**kwargs) 当 Field.localize 为 False 时,数字输入,否则文本输入
GenericIPAddressField class GenericIPAddressField(**kwargs) 文本输入
MultipleChoiceField class MultipleChoiceField(**kwargs) 选择多个
TypedMultipleChoiceField class TypedMultipleChoiceField(**kwargs) 选择多个
NullBooleanField class NullBooleanField(**kwargs) 零布尔选择
RegexField class RegexField(**kwargs) 文本输入
SlugField class SlugField(**kwargs) 文本输入
TimeField class TimeField(**kwargs) 时间输入
-----
URLField class URLField(**kwargs) URL输入
UUIDField class UUIDField(**kwargs) 文本输入

核心字段参数

核心字段参数是为每个字段提供的参数,用于应用某些约束或将特定特征赋予特定字段。例如,将所需参数 = False 添加到 CharField 将使用户能够将其留空。每个 Field 类构造函数至少采用这些参数。某些 Field 类采用其他特定于字段的参数,但应始终接受以下参数:

.math-table { 边框折叠: 折叠; 宽度: 100%; } .math-table td { 边框: 1px 实心#5fb962; 文本对齐: 左 !重要; } .math-table th { 边框: 1px 实心#5fb962; 填充: 8px; } .math-table tr>th{ 背景色: #c6ebd9; 垂直对齐: 中间; } .math-table tr:n-子(奇数) { 背景颜色: #ffffff; }

字段选项 描述
required 默认情况下,每个 Field 类都假定该值是必需的,因此要使其不是必需的,您需要设置 required=False
label 标签参数允许您为此字段指定“人性化”标签。当字段显示在窗体中时,将使用此选项。
label_suffix label_suffix参数允许您基于每个字段覆盖表单的label_suffix
widget 小部件参数允许您指定在呈现此字段时要使用的 Widget 类。
help_text help_text参数允许您为此字段指定描述性文本。如果提供help_text,则当字段由一种方便的 Form 方法呈现时,该字段将显示在字段旁边。
error_messages error_messages参数允许您覆盖字段将引发的默认消息。传入包含与要覆盖的错误消息匹配的键的字典。
validators 验证程序参数允许您为此字段提供验证函数的列表。  
localize 本地化参数允许对表单数据输入以及呈现的输出进行本地化。
disabled. 禁用的布尔参数设置为 True 时,将使用禁用的 HTML 属性禁用表单字段,以便用户无法对其进行编辑。


目录
相关文章
|
3天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
10 1
|
5天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
10 3
|
4天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
8 0
|
4天前
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
8 0
|
6月前
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
123 0
|
6月前
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30702 0
|
15天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
101 44
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
176 4
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
152 1
|
16天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
29 2