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. 总结
项目回顾
学习资源推荐
-
+
首页
表单验证
Django提供了强大的表单验证机制,可以在用户提交表单时自动验证数据的合法性。 #### **2.1 自动验证** Django会在调用`form.is_valid()`方法时自动验证表单数据。如果所有字段都通过验证,返回`True`,否则返回`False`。 **示例:在视图中处理表单验证** Python复制 ```python from django.shortcuts import render from .forms import ContactForm def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # 处理表单数据 name = form.cleaned_data['name'] email = form.cleaned_data['email'] message = form.cleaned_data['message'] # 发送邮件或保存数据 return HttpResponse("Thank you for your message!") else: form = ContactForm() return render(request, 'contact.html', {'form': form}) ``` 在上述代码中: - 如果请求方法是`POST`,使用`request.POST`数据初始化表单。 - 调用`form.is_valid()`方法进行验证。 - 如果验证通过,可以通过`form.cleaned_data`访问验证后的数据。 #### **2.2 自定义验证** 可以通过在表单类中定义`clean_<fieldname>`方法来自定义字段的验证逻辑。 **示例:自定义字段验证** Python复制 ```python class ContactForm(forms.Form): name = forms.CharField(label='Your Name', max_length=100) email = forms.EmailField(label='Your Email') message = forms.CharField(label='Your Message', widget=forms.Textarea) def clean_email(self): email = self.cleaned_data['email'] if "example.com" in email: raise forms.ValidationError("Please use a different email address.") return email ``` 在上述代码中: - `clean_email`方法用于验证`email`字段。 - 如果`email`字段包含`example.com`,抛出`ValidationError`异常。 #### **2.3 表单错误处理** 如果表单验证失败,Django会自动将错误信息添加到表单的`errors`属性中。这些错误信息可以在模板中显示给用户。 **示例:在模板中显示表单错误** HTML复制 ```html <form method="post"> {% csrf_token %} {{ form.as_p }} {% if form.errors %} <p>There were some errors in the form:</p> {{ form.errors }} {% endif %} <button type="submit">Submit</button> </form> ``` 在上述代码中: - 使用`{{ form.as_p }}`将表单字段渲染为HTML。 - 使用`{{ form.errors }}`显示表单的错误信息。
黄老师
2025年2月7日 09:43
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码