Django基础教程
第一部分:基础入门
1. 引言
Django简介
Django的优势与应用场景
2. 搭建开发环境
安装Python
创建虚拟环境
安装Django
3. 创建第一个Django项目
初始化Django项目
项目结构解析
启动开发服务器
4. Django的MVT架构
模型(Model)
视图(View)
模板(Template)
URL路由
第二部分:核心功能
1. 模型(Model)
定义模型
数据库迁移
模型字段与选项
2. 视图(View)
视图函数
基于类的视图
视图装饰器
3. 模板(Template)
创建模板
模板语法
模板继承
4. URL路由
定义URL模式
路由分发
5. 表单处理
定义表单
表单验证
文件上传
第三部分:高级功能
1. 用户认证与权限
用户认证
权限管理
2. Django Admin
自定义Admin界面
管理动作
3. 静态文件与媒体文件
静态文件管理
媒体文件处理
4. Django REST framework(DRF)
DRF简介
序列化器
视图集与路由
5. API文档
使用Swagger生成API文档
第四部分:实战与部署
1. 实战项目开发
用户管理系统
博客系统
文章管理系统
2. 数据库迁移
迁移至MySQL
数据库优化
3. 日志管理
日志配置
日志记录
4. 部署生产环境
部署到WSGI服务器
使用Docker部署
部署检查清单
5. 性能优化
性能优化策略
缓存机制
6. 总结
项目回顾
学习资源推荐
-
+
首页
模型字段与选项
#### **3.1 模型字段类型** Django提供了多种字段类型,用于定义模型的字段。常见的字段类型包括: - `CharField`:用于存储字符串。 Python复制 ```python title = models.CharField(max_length=100) ``` - `IntegerField`:用于存储整数。 Python复制 ```python pages = models.IntegerField() ``` - `DateField`:用于存储日期。 Python复制 ```python published_date = models.DateField() ``` - `DateTimeField`:用于存储日期和时间。 Python复制 ```python created_at = models.DateTimeField(auto_now_add=True) ``` - `DecimalField`:用于存储小数。 Python复制 ```python price = models.DecimalField(max_digits=10, decimal_places=2) ``` - `BooleanField`:用于存储布尔值。 Python复制 ```python is_available = models.BooleanField(default=True) ``` - `ForeignKey`:用于定义一对多关系。 Python复制 ```python class Book(models.Model): author = models.ForeignKey('Author', on_delete=models.CASCADE) ``` - `ManyToManyField`:用于定义多对多关系。 Python复制 ```python class Book(models.Model): authors = models.ManyToManyField('Author') ``` #### **3.2 字段选项** 每个字段类型都支持多种选项,用于定义字段的行为和约束。常见的字段选项包括: - `max_length`:指定字段的最大长度。 Python复制 ```python title = models.CharField(max_length=100) ``` - `default`:指定字段的默认值。 Python复制 ```python is_available = models.BooleanField(default=True) ``` - `blank`:指定字段在表单中是否可以为空。 Python复制 ```python description = models.TextField(blank=True) ``` - `null`:指定字段在数据库中是否可以为空。 Python复制 ```python published_date = models.DateField(null=True) ``` - `unique`:指定字段是否唯一。 Python复制 ```python isbn_number = models.CharField(max_length=13, unique=True) ``` - `choices`:指定字段的可选值。 Python复制 ```python STATUS_CHOICES = [ ('d', 'Draft'), ('p', 'Published'), ('w', 'Withdrawn'), ] status = models.CharField(max_length=1, choices=STATUS_CHOICES) ``` #### **3.3 字段验证** Django提供了多种验证器,用于验证字段的值是否符合特定的规则。可以通过`validators`选项为字段添加验证器。 **示例:使用验证器** Python复制 ```python from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models class Book(models.Model): title = models.CharField(max_length=100) price = models.DecimalField( max_digits=10, decimal_places=2, validators=[MinValueValidator(0), MaxValueValidator(1000)] ) ``` 在上述代码中,`price`字段使用了`MinValueValidator`和`MaxValueValidator`验证器,确保价格在0到1000之间。
黄老师
2025年2月7日 09:31
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码