模型 — Django 1.8.2 中文文档

合集下载

django工作原理

django工作原理

django工作原理

Django工作原理

Django是一个开源的Web应用程序框架,由Python语言编写而成。它遵循MVC(Model-View-Controller)的设计模式,旨在帮助开发人员快速构建复杂且高效的Web应用程序。Django的工作原理涉及到多个组件和概念,包括URL映射、视图函数、模型、模板等。

让我们从URL映射开始。在Django中,URL映射是指将用户请求的URL与对应的视图函数进行匹配的过程。当用户在浏览器中输入一个URL时,Django会根据URL配置文件中的规则,将请求转发给相应的视图函数进行处理。这样可以实现将不同的URL请求映射到不同的视图函数上,实现了URL的路由功能。

接下来是视图函数。视图函数是Django应用程序中处理用户请求的核心组件。当用户发起请求时,Django会调用相应的视图函数来生成HTTP响应并返回给用户。视图函数可以从数据库中获取数据,调用其他函数或服务,然后将数据传递给模板进行渲染。视图函数的主要作用是处理用户请求,进行业务逻辑处理,并生成响应结果。在Django中,模型是与数据库交互的组件。模型定义了数据的结构和关系,并提供了与数据库进行交互的接口。通过定义模型类,开发人员可以轻松地操作数据库,包括创建、读取、更新和删除数据。Django的模型系统使用ORM(对象关系映射)技术,将数据库表映

射为Python对象,使开发人员可以使用面向对象的方式来操作数据。最后是模板。模板是Django中用于生成HTML页面的组件。模板使用Django的模板语言来描绘页面的结构和内容,并将动态数据插入到页面中。当视图函数处理完业务逻辑后,会将数据传递给模板进行渲染,最终生成用户可见的页面。模板的使用可以有效地将业务逻辑和页面布局分离,提高代码的可维护性和可重用性。

django模型类中,null=True,blank=True用法说明

django模型类中,null=True,blank=True用法说明

django模型类中,null=True,blank=True⽤法说明

1.模型类中设置:null=True,表⽰数据库创建时该字段可不填,⽤NULL填充.

MySQL:

Null这⼀列,如果值为YES表⽰:创建⼀条新记录时,该字段可不填,数据库会⽤默认值NULL填充.django模型类中声明null=True 即可.

desc = models.CharField(max_length=100, null=True, blank=True, verbose_name='⾓⾊描述', help_text='⾓⾊描述')

2.模型类中设置:blank=True,表⽰代码中创建数据库记录时该字段可传空⽩(空串,空字符串).

表⽰前端传递参数时,不允许传递空串(空⽩字符串),若传递了,会抛校验失败异常,400状态码.

补充知识:django 数据模型中 null=True 和 blank=True的区别

null

是针对数据库⽽⾔,如果 null=True, 表⽰数据库的该字段可以为空,即在Null字段显⽰为YES。

blank

是针对表单的,如果 blank=True,表⽰你的表单填写该字段的时候可以不填,但是对数据库来说,没有任何影响

以上这篇django模型类中,null=True,blank=True⽤法说明就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

django学习总结

django学习总结

django学习总结

tips:django官⽅中⽂⽂档(/django/index.html),django基础教程(/django/django-tutorial.html)

⼀、关于django

django是⼀个python中的web框架,如果想更好的使⽤它,最好还能有HTML, CSS, JavaScript等⽅⾯的知识。它的特点主要体现在⼏个⽅⾯:强⼤的数据库(具有许多api同时⽀持执⾏sql语句)、⾃带强⼤的后台功能、利⽤正则表达式匹配⽹址(简化⽹页管理)、模板与视图⼀⼀对应、缓存机制、国际化⽀持等等。

django适合于敏捷开发,只需要少量代码即可建⽴⾼性能web应⽤。因其已经完成了开发⽹站的许多常见代码,所以减少了代码的重复度。Ok,让我们⾸先看下django的主要⽂件组成。主要⽂件包括如下⼏个py⽂件:

django⼯程主要py⽂件

⽂件功能

urls.py⽹址⼊⼝,关联到views中对于的函数

models.py与数据库操作相关,建⽴应⽤数据模型

views.py处理⽤户发出请求,从urls中对应过来,通过渲染templates中⽹页显⽰内容

settings.py相关设置,包括数据库设置,邮件设置,静态⽂件配置等

forms.py表单,⽤户在浏览器端提交的表单数据类

admin.py后台代码,⼤部分已完成

⼆、常⽤命令

环境搭建这⼀部分就不作叙述,⽹上教程很多。常⽤命令如下:

1#新建django project

2 django-admin.py startproject project-name

Django框架开发与性能测试

Django框架开发与性能测试

Django框架开发与性能测试

在Web应用程序开发领域,Django框架被广泛应用于构建高效、

可靠的网站和应用程序。本文将探讨Django框架的开发流程,并介绍

如何进行性能测试以确保应用程序的高性能。

一、Django框架开发流程

1. 环境配置

在开始Django框架的开发之前,首先需要在本地环境中配置好Python和Django框架。确保已经安装了最新版本的Python和Django,并创建一个虚拟环境来隔离不同项目之间的依赖关系。

2. 创建项目

使用Django的命令行工具,可以轻松地创建一个新的Django项目。运行命令"django-admin startproject projectname"即可创建一个名为"projectname"的新项目。

3. 创建应用程序

Django框架采用了应用程序的概念,一个项目可以包含多个应用程序。通过运行"python manage.py startapp appname"命令,在项目中创建

一个新的应用程序。

4. 数据库模型设计

在Django框架中,使用对象关系映射(ORM)来管理数据库。通过定义模型类,可以将关系型数据库的表结构映射为Python对象。根据应

用程序的需求,设计并创建合适的模型类。

5. 视图和URL配置

在Django中,视图函数负责处理用户请求,根据需要进行数据库

查询或其他操作,并返回响应给用户。通过配置URL来将特定的URL

路径与对应的视图函数关联起来。

6. 模板设计

Django框架支持使用模板来实现前端的页面展示。通过编写模板文件,可以将动态生成的数据呈现给用户,并实现交互性的用户界面。

Django框架中的后台管理功能详解

Django框架中的后台管理功能详解

Django框架中的后台管理功能详解Django是一款基于Python的开源Web框架,它提供了许多便捷且

强大的功能,其中之一便是后台管理功能。在本文中,我们将详细介

绍Django框架中的后台管理功能以及其使用方法。

1. 后台管理功能的作用

Django的后台管理功能旨在简化网站管理的过程。通过后台管理功能,网站管理员可以轻松地管理网站的各种内容,包括用户、文章、

图片等等。它提供了一个基于Web的用户界面,使得管理员可以方便

地进行增、删、改、查等操作,无需编写额外的代码。

2. 后台管理功能的设置

要使用Django的后台管理功能,首先需要在项目的设置文件中进

行相应的配置。打开项目的`settings.py`文件,找到

`INSTALLED_APPS`列表,并将`'django.contrib.admin'`添加到其中。这

将启用后台管理功能。

在同一个文件中,还需要确保`'django.contrib.auth'`和

`'django.contrib.contenttypes'`同样被添加到`INSTALLED_APPS`列表中。这两个应用程序是后台管理功能所依赖的。

3. 创建后台管理账户

一旦设置完成,我们就可以创建后台管理的账户。在终端中运行以

下命令:

```

python manage.py createsuperuser

```

按照提示输入用户名、电子邮件地址及密码,并确认创建账户。该账户将用于登录后台管理界面。

4. 定义后台管理模型

在Django中,后台管理功能是通过操作模型来实现的。因此,在使用后台管理功能之前,我们需要定义相应的模型。以一个图书管理系统为例,我们可以创建一个`Book`模型,并在`models.py`文件中进行如下定义:

Django中的数据库连接

Django中的数据库连接

Django中的数据库连接

Django是一个流行的Python Web框架,它提供了方便的数据库连

接和操作功能。在本文中,我们将介绍如何在Django中进行数据库连接,并说明一些常见的连接选项和配置。

1. 数据库配置

在Django中,我们需要在项目的配置文件中指定数据库连接信息。通常情况下,这个配置文件是settings.py。在该文件中,我们可以找到DATABASES字典,其中包含了数据库连接的相关配置。

示例配置如下:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'database_name',

'USER': 'username',

'PASSWORD': 'password',

'HOST': 'localhost',

'PORT': '3306',

}

}

在这个示例配置中,我们使用的是MySQL数据库,但Django也支持其他数据库,如PostgreSQL、Oracle等。我们需要根据自己使用的数据库类型来设置'ENGINE'字段的值。

'NAME'字段指定了要连接的数据库的名称。'USER'和'PASSWORD'字段分别是数据库的用户名和密码。'HOST'和'PORT'字段用于指定数据库服务器的地址和端口号。

2. 创建数据库模型

在Django中,我们使用模型来定义数据库中的表结构。每个模型对应一个表,模型中的字段对应表中的列。

示例模型定义如下:

from django.db import models

Django框架开发文件上传与管理

Django框架开发文件上传与管理

Django框架开发文件上传与管理Django是一个使用Python编写的高级Web框架,它提供了开发Web应用所需的一切。其中一个重要的功能是文件上传与管理。本文将介绍如何在Django框架中实现文件上传和文件管理的功能。

一、文件上传

文件上传是Web应用中常见的功能之一。在Django框架中,实现文件上传功能需要以下几个步骤:

1. 在models.py中定义文件上传的模型:

```python

from django.db import models

class File(models.Model):

name = models.CharField(max_length=100)

file = models.FileField(upload_to='uploads/')

upload_time = models.DateTimeField(auto_now_add=True)

```

上述代码定义了一个名为File的模型,包含了name、file和upload_time等字段。其中,name字段用于存储文件名,file字段用于存储文件本身,upload_time字段用于记录文件上传的时间。

2. 在forms.py中定义文件上传的表单:

```python

from django import forms

from .models import File

class FileForm(forms.ModelForm):

class Meta:

model = File

fields = ['name', 'file']

DJANGO框架架构简析

DJANGO框架架构简析

DJANGO框架架构简析

Django是一个高级的Python Web框架,它允许开发人员快速构建可扩展的、安全的和可维护的Web应用程序。Django采用了MVC(Model-View-Controller)的架构模式,但与传统的MVC框架有所不同,它使用了MTV(Model-Template-View)的架构模式。在这篇文章中,我们将对Django框架的架构进行详细的解析。

1. 模型层(Model Layer):

模型层负责处理数据持久化和业务逻辑。在Django中,模型层使用ORM(对象关系映射)来对应用程序的数据进行建模。开发人员可以定义数据模型,这些模型将映射到数据库中的表,并且还可以定义模型之间的关系。Django中的模型层使用了Python中的类来描述数据模型,每个类代表一个数据表。模型层还提供了查询API,用于在数据库中查询数据。

2. 模板层(Template Layer):

3. 视图层(View Layer):

视图层是连接模型层和模板层的中间件。视图层负责接收来自用户的请求并处理它们。开发人员可以使用视图函数或类来定义视图,这些视图将处理请求,并返回渲染后的响应。视图层可以访问模型层的数据,并将其传递给模板层进行渲染。Django还提供了各种功能的视图,例如表单处理、身份验证和会话管理。

4. 路由层(URLconf):

路由层负责将URL映射到特定的视图。Django使用URLconf来定义URL模式,开发人员可以在URL模式中使用正则表达式和参数等来匹配

URL。路由层还支持路由命名空间、URL反向解析和可选参数等功能,使开发人员能够更灵活地定义URL。

Django框架培训文档

Django框架培训文档
• 2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载 URLConf。
• 3.然后按顺序逐个匹配URLConf里的URLpatterns。如果wenku.baidu.com到则会调 用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是 request)
• 4.最后该view函数负责返回一个HttpResponse对象。
部署
• Django可以运行在Apache,Nginx上,也可 以运行在支持WSGI,FastCGI的服务器上。 支持多种数据库,已经支持 Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支持Django的某些部分,国 内支持的平台有(SAE)Sina App Engine, (BAE)百度应用引擎。
一个ADMIN site,类似于内容管理系统
工作机制
• 1.用manage .py runserver 启动Django服务器时就载入了在同一目录 下的settings .py。该文件包含了项目中的配置信息,如前面讲的 URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉 Django哪个Python模块应该用作本站的URLConf,默认的是urls .py
层次
职责
模型(Model),即数据存取层 理与数据相关的所有事务: 如何存取、如 何验证有效性、包含哪些行为以及数据之 间的关系等。

Django中的机器学习集成与模型训练

Django中的机器学习集成与模型训练

Django中的机器学习集成与模型训练近年来,机器学习在许多领域取得了显著的应用和成果。在Web开发中,结合机器学习算法,为网站提供智能化的服务已成为一种趋势。Django作为一个流行的Web框架,提供了强大的机器学习集成功能,

使得模型训练和预测变得更加简单和高效。

一、Django的机器学习集成

在Django中,机器学习集成主要通过使用Python的机器学习库来

实现。常用的机器学习库包括scikit-learn、TensorFlow等。通过引入这些库,开发者可以在Django项目中轻松使用各种机器学习算法,并将

其应用到实际问题中。

1. 使用scikit-learn集成机器学习

scikit-learn是一个功能强大的Python机器学习库,提供了丰富的算

法和工具,使得机器学习模型的开发和使用变得更加简单。在Django

项目中,可以通过导入scikit-learn库来集成机器学习功能。例如,可

以使用scikit-learn中的分类算法对用户行为进行预测,并根据预测结

果提供个性化的服务。

2. 使用TensorFlow集成机器学习

TensorFlow是由Google开发的开源机器学习库,广泛应用于深度

学习和神经网络领域。在Django中,可以使用TensorFlow来构建和训

练复杂的神经网络模型,并使用这些模型进行预测和推荐。例如,可

以使用TensorFlow构建一个图片分类器,实现对用户上传图片的自动

分类功能。

二、Django中的模型训练

在机器学习中,模型训练是一个至关重要的过程。通过训练数据集,机器学习算法可以学习到数据的规律和模式,并生成一个可用于预测

django框架和工作流引擎的基本原理和应用。

django框架和工作流引擎的基本原理和应用。

django框架和工作流引擎的基本原理和应用。

Django是一个高级Python Web框架,它鼓励快速开发和干净、安全的代码设计。它使用MVC架构模式,并包含许多用于开发Web应用程序的功能强大的工具。Django框架主要解决了Web开发中的一些常见问题,例如URL路由、表单处理、数据库集成等。

工作流引擎是一种用于自动化工作流的系统,它可以控制任务、决策和业务流程的执行。工作流引擎通常包括流程设计器、任务调度器、流程监控器等组件,用于实现工作流的定义、执行和监控。

Django框架可以与工作流引擎集成,以构建复杂的Web 应用程序,其中涉及到的基本原理和应用如下:

基本原理:

1.模型-视图-控制器(MVC)架构:Django框架遵循MVC架构模式,其中模型负责处理数据和业务逻辑,视图负责呈现数据和用户界面,控制器负责处理用户请求和响应。这种架构模式有助于将应用程序的不同部分分离,使其更易于维护和扩展。

2.数据库集成:Django框架提供了强大的数据库集成功能,支持多种数据库系统。通过使用Django的ORM(对象

关系映射)工具,可以将Python类与数据库表进行映射,

并使用Python代码进行数据操作。

3.模板系统:Django框架使用模板系统来呈现Web页面。模板使用简单的标记语言来定义页面结构,并允许在模板中插入Python变量和表达式。通过将业务逻辑与表示层

分离,模板系统有助于提高代码的可维护性和可重用性。

应用:

1.内容管理系统:Django框架可以用于构建内容管理系统,用于管理和发布网站内容。通过使用Django的模型

django模型类的常见字段约束,以及filter过滤和查询

django模型类的常见字段约束,以及filter过滤和查询

django模型类的常见字段约束,以及filter过滤和查询

null

不设置时默认设置为False。设置为True时,数据库表字段中将存⼊NULL的记录。 null和blank组合使⽤,null=True,blank=True,表⽰该字段可以为空

blank

默认设置为False。设置为True时,表字段许可⽆任何输⼊。设置为False 时,表字段为必须输⼊的字段

choices

备选设置。选择列表选项,如果设置后,该字段的表单必然会是下拉选择的。这个值必须是⼀个有⼩括号构成的元组,每个元组前⼀个字段将存⼊数据库,后⼀个字段是显⽰给⽤户看的。

default

默认值,设置后在⽤户⽆输⼊时,表字段将以这个选项的内容来存储到数据库字段

可以为python ⽀持的任意数据对象

editable

如何设置为False,将不会参与到表单的验证。默认是设置为True的

error_messages

这个选项实现校验时的错误提⽰。是字典结构的内容。

help_text

在表单中形成输⼊提⽰内容

primary_key

主键,设置为 True ,该字段将启⽤为主键。默认是 False

unique

设置为 True 启⽤不存在重复值输⼊的设定,默认为False

unique_for_date

设定⽇期不存在重复输⼊,默认为False

verbose_name

字段的⽂本标签

validators

校验选项,⽤来配置校验的⽅法,构成的列表。

max_length

最⼤输⼊字符串的长度

min_length

最少输⼊字符串的长度

AutoField ⾃动增值的id字段

适合初学者的django 案例

适合初学者的django 案例

适合初学者的django案例

对于初学者来说,学习Django可以通过构建简单而有趣的Web应用程序来加深理解。下面是一些适合初学者的Django案例示例:

1.To-Do List应用程序

●功能概述:创建一个简单的To-Do List(任务清单)应用,用户可以添加、

删除和标记任务完成状态。

●学习重点:Django模型、视图和模板的基础使用、表单处理、用户认证。

2.博客或笔记应用程序

●功能概述:构建一个简单的博客或笔记应用,允许用户创建、编辑和发布文

章或笔记。

●学习重点:数据库模型的设计、用户认证、页面渲染和路由。

3.在线投票应用程序

●功能概述:创建一个在线投票应用,用户可以投票给不同的选项,并查看投

票结果。

●学习重点:表单处理、数据存储和查询、模板渲染。

4.天气预报应用程序

●功能概述:利用天气API,创建一个简单的天气预报应用,根据用户输入的

位置显示天气信息。

●学习重点:使用外部API、数据获取和处理、页面交互。

5.在线购物车应用程序

●功能概述:制作一个简单的在线购物车应用,用户可以添加商品到购物车并

结账。

●学习重点:数据库关联、购物车逻辑、支付和订单处理。

这些案例可以帮助初学者掌握Django的基本概念和工作原理,建议在学习过程中深入研究Django官方文档并尝试构建这些简单的应用程序。通过实际动手构建项目,可以更好地理解Django的各个方面,并且可以逐步深入学习更复杂的功能和用例。

Django框架开发技术手册

Django框架开发技术手册

Django框架开发技术手册

1. 简介

Django是一个使用Python语言开发的高级Web框架。它提供了一系列的工具和功能,方便开发人员快速构建高效、安全、可扩展的Web应用程序。

2. 安装和配置

2.1 安装Python

Django是通过Python来运行的,因此首先需要安装Python的最新版本。

2.2 安装Django

使用pip命令可以简单地安装Django框架。在命令行中运行以下命令:pip install django

2.3 创建Django项目

使用django-admin命令行工具创建一个新的Django项目:django-admin startproject myproject

2.4 配置数据库

在Django项目的设置文件中配置数据库连接,Django支持多种数据库后端。

3. Django的核心组件

3.1 模型(Models)

Django的模型定义了应用程序的数据结构。通过定义模型类和字段,可以创建数据库表和字段,并对数据进行操作。

3.2 视图(Views)

Django的视图负责处理用户请求,并生成响应。视图可以处理表单提交、数据库查询等操作,并将结果呈现给用户。

3.3 模板(Templates)

Django的模板用于将数据和视图进行分离,以实现前后端的解耦。模板文件中可以包含HTML代码和动态变量,方便生成可定制的页面。

3.4 URL映射(URL Mapping)

Django使用URL映射将用户请求的URL路由到相应的视图函数。通过定义URL模式,可以实现URL的友好和灵活配置。

Django的设计模式

Django的设计模式

Django的设计模式

MVC模式

MVC将应⽤程序分解为三个组成部分:mode(模型)、view(视图)、control(控制器),其中:

M 管理应⽤程序的状态(通常存储到数据库中),并榆树改变状态的⾏为(或者叫“业务规则”)

C 接受外部⽤户的操作,根据操作访问模型获取数据,并调⽤“视图”显⽰这些数据,控制器将“模型”和“视图”隔离,并成为⼆者之间的

纽带

V 负责把数据格式化后呈现给⽤户。

MTV

Django也是⼀个MVC框架,但在Django中,控制器接受⽤户输⼊的部分由框架⾃⾏处理,所以Django中更关注的是视图(Views),称为MTV模式:

M 代表模型(Model),数据存取层,该层处理与数据相关的所有事物:如何存取、包含哪些⾏为以及数据之间的关系等

T 代表模板(Template),即表现层。该层处理与表现相关的决定:如何在页⾯和其他类型的⽂档中进⾏显⽰

V 代表视图(View),即业务逻辑层。该层包含存取模型及调取恰当模型的相关逻辑,可看作模板与模型之间的桥梁

django的choice函数

django的choice函数

django的choice函数

Django是一个强大的Web框架,其中最常用的是模型类。在模型类中,我们经常会使用choices选项来定义字段的选项,而这个选项

的背后,是一个可以重复利用的方法——choice函数。

1. 什么是choice函数?

在Django中,choice函数通常用来定义元组类型的选项,它的

格式如下:

```python

choice = (

('A', '选项A'),

('B', '选项B'),

('C', '选项C'),

)

```

其中,要注意每个选项都是由两个元素组成的子元组,第一个元

素是必需变化的值,第二个元素是相应的标签或名字,二者可以根据

实际需求自由设置。

在以上例子中,我们定义了一些字母选项,以及它们对应的名称。当我们在使用这个选项的时候,Django会自动将名称映射为值。例如,如果我们想要在一个表单中选择字母选项,可以这样做:

```python

from django import forms

class TestForm(forms.Form):

letter = forms.ChoiceField(choices=choice)

```

在表单中使用choice函数的话就体现出了它非常的方便,我们

只需要将元组类型的选项给到ChoiceField的参数中即可,这样这个

表单就会自动生成一个下拉列表。

2. 如何在模型类中使用choice函数?

如果在模型类中使用choice函数的话,我们可以将choice函数

作为模型类的属性来使用,例如:

```python

class TestModel(models.Model):

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字段
浏览
模型中不可或缺且最为重要的,就是字段集,它是一组数据库字段的列表。字段被指定为类属性。 要注意选择 的字段名称不要和模型 API 冲突,比如clean、save 或者delete。
上一页:模型和数据库
第1页利用共16p页dfFactory Pro 测试版本创建的PDF文档 www.pdffactory.com
id = models.AutoField(primary_key=True)
这是一个自增主键字段。 如果你想指定一个自定义主键字段,只要在某个字段上指定 primary_key=True 即可。如果 Django 看到你显式 地设置了 Field.primary_key,就不会自动添加 id 列。 每个模型只能有一个字段指定primary_key=True(无论是显式声明还是自动添加)。
覆盖预定义的模型方法 执行自定义的SQL 模型继承 抽象基类
Meta继承 小心使用related_name 多表继承 多表继承中的Meta 继承和反向关联 指定链接父类的字段 代理模型
INSTALLED_APPS = ( #... 'myapp', #...
)
查询集始终返回请求的模型 基类的限制 代理模型的管理器
primary_key
如果为True,那么这个字段就是模型的主键。 如果你没有指定任何一个字段的primary_key=True,Django 就会自动添加一个IntegerField 字段做为主键, 所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段的primary_key=True。详见自增主键字段。
你在这里:
Django 1.8.2 文档 使用 Django 模型和数据库 模型
字段类型
模型中的每个字段都是 Field 子类的某个实例。Django 根据字段类的类型确定以下信息: 数据库当中的列类型 (比如: INTEGER, VARCHAR)。 渲染表单时使用的默认HTML 部件(例如,<input type="text">, <select>)。 最低限度的验证需求,它被用在 Django 管理站点和自动生成的表单中。
null 如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False. blank 如果为True,该字段允许不填。默认为False。 要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。如果一个字段的 blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。 choices 由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的 表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。 这是一个关于 choices 列表的例子:
本页
Show Source
Quick search
Go
Ente r se arch te rms or a module , class or function name .
最后更新:
May 13, 2015
YEAR_IN_SCHOOL_CHOICES = ( ('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'),
主键字段是只读的。如果你在一个已存在的对象上面更改主键的值并且保存,一个新的对象将会在原有对象之外 创建出来。例如:
from django.db import models class Fruit(models.Model):
name = models.CharField(max_length=100, primary_key=True)
first_name = models.CharField("person's first name", max_length=30)
在这个例子ቤተ መጻሕፍቲ ባይዱ,自述名是 "first name":
第3页利用共16p页dfFactory Pro 测试版本创建的PDF文档 www.pdffactory.com
2015/12/26 16:27
模型 — Django 1.8.2 中文文档
例如:
http://python.usyiyi.cn/django/topics/db/models.html
下一页:执行查询
from django.db import models class Musician(models.Model):
Django 自带数十种内置的字段类型;完整字段类型列表可以在模型字段参考 中找到。如果内置类型仍不能满足 你的要求,你可以自由地编写符合你要求的字段类型; 详见编写自定义的模型字段。
字段选项
每个字段有一些特有的参数,详见模型字段参考。例如,CharField(和它的派生类)需要max_length 参数来 指定VARCHAR 数据库字段的大小。 还有一些适用于所有字段的通用参数。 这些参数在参考中有详细定义,这里我们只简单介绍一些最常用的:
);
自定义字段类型 元选项 模型的属性
模型的方法
一些技术上的注意事项:
这个表的名称myapp_person,是根据 模型中的元数据自动生成的,也可以覆写为别的名称,详见Table names。 id 字段是自动添加的,但这个行为可以被重写。详见自增主键字段。 这个例子中的CREATE TABLE SQL 语句使用PostgreSQL 语法格式,要注意的是Django 会根据设置文件 中 指定的数据库类型来使用相应的SQL 语句。
unique 如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的 再说一次,这些仅仅是常用字段的简短介绍, 要了解详细内容,请查看 通用 model 字段选项参考(common model field option reference).
自增主键字段
默认情况下,Django 会给每个模型添加下面这个字段:
字段的自述名
除ForeignKey、ManyToManyField 和 OneToOneField 之外,每个字段类型都接受一个可选的位置参数 —— 字 段的自述名。如果没有给定自述名,Django 将根据字段的属性名称自动创建自述名 —— 将属性名称的下划线替 换成空格。 在这个例子中,自述名是 "person's first name":
模型 — Django 1.8.2 中文文档
http://python.usyiyi.cn/django/topics/db/models.html
Django 1.8.2 文档
Home | Table of contents | Index | Modules
« previous | up | next
)
每个元组中的第一个元素,是存储在数据库中的值;第二个元素是在管理界面或 ModelChoiceField 中用作显示 的内容。 在一个给定的 model 类的实例中,想得到某个 choices 字段的显示值,就调用 get_FOO_display 方法 (这里的 FOO 就是 choices 字段的名称 )。例如:
http://python.usyiyi.cn/django/topics/db/models.html
default 字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。
help_text 表单部件额外显示的帮助内容。即使字段不在表单中使用,它对生成文档也很有用。
模型
模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库 中唯一的一张表。 基础:
每个模型都是django.db.models.Model 的一个Python 子类。 模型的每个属性都表示数据库中的一个字段。 Django 提供一套自动生成的用于数据库访问的API;详见执行查询。
from django.db import models class Person(models.Model):
SHIRT_SIZES = ( ('S', 'Small'), ('M', 'Medium'), ('L', 'Large'),
) name = models.CharField(max_length=60) shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)
代理 模型与非托管 模型之间的差异
当你在INSTALLED_APPS 中添加新的应用名时,请确保运行命令manage.py migrate,可以事先使用manage.py makemigrations 给应用生成迁移脚本。
多重继承 Field name “hiding” is not permi ed
第2页利用共16p页dfFactory Pro 测试版本创建的PDF文档 www.pdffactory.com
2015/12/26 16:27
模型 — Django 1.8.2 中文文档
>>> p = Person(name="Fred Flintstone", shirt_size="L") >>> p.save() >>> p.shirt_size 'L' >>> p.get_shirt_size_display() 'Large'
简短的例子
目录
模型 简短的例子 使用模型 字段 字段类型 字段选项
这个例子定义一个Person模型,它有first_name 和last_name 两个属性:
自增主键字段
字段的自述名
from django.db import models class Person(models.Model):
first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30)
使用模型
定义好模型之后,接下来你需要告诉Django 使用这些模型。你要做的就是修改配置文件中的 INSTALLED_APPS 设置,在其中添加models.py所在应用的名称。 例如,如果你的应用的模型位于myapp.models模块(manage.py startapp 脚本为一个应用创建的包结 构),INSTALLED_APPS部分看上去应该是:
关系 多对一关系 多对多关系
first_name和last_name是模型的两个字段。每个字段都被指定成一个类属性,每个属性映射到一个数据库的 列。
上面的Person 模型会在数据库中创建这样一张表:
多对多关系中的其他字段 一对一关系 跨文件的模型 字段名称的约束
CREATE TABLE myapp_person ( "id" serial NOT NULL PRIMARY KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL
>>> fruit = Fruit.objects.create(name='Apple') >>> fruit.name = 'Pear' >>> fruit.save() >>> Fruit.objects.values_list('name', flat=True) ['Apple', 'Pear']
first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) instrument = models.CharField(max_length=100) class Album(models.Model): artist = models.ForeignKey(Musician) name = models.CharField(max_length=100) release_date = models.DateField() num_stars = models.IntegerField()
相关文档
最新文档