没有合适的资源?快使用搜索试试~ 我知道了~
Django Form and ModelForm的区别与使用
1 下载量 99 浏览量
2020-12-23
07:13:34
上传
评论
收藏 111KB PDF 举报
温馨提示
Form介绍 在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通方式手写注册功能 views.py # 注册 def register(request): error_ms
资源推荐
资源详情
资源评论
Django Form and ModelForm的区别与使用的区别与使用
Form介绍介绍
在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。
与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输
入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。
Django form组件就实现了上面所述的功能。
总结一下,其实form组件的主要功能如下:
生成页面可用的HTML标签
对用户提交的数据进行校验
保留上次输入内容
普通方式手写注册功能普通方式手写注册功能
views.py
# 注册
def register(request):
error_msg = ""
if request.method == "POST":
username = request.POST.get("name")
pwd = request.POST.get("pwd")
# 对注册信息做校验
if len(username) < 6:
# 用户长度小于6位
error_msg = "用户名长度不能小于6位"
else:
# 将用户名和密码存到数据库
return HttpResponse("注册成功")
return render(request, "register.html", {"error_msg": error_msg})
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="/reg/" method="post">
{% csrf_token %}
<p>
用户名:
<input type="text" name="name">
</p>
<p>
密码:
<input type="password" name="pwd">
</p>
<p>
<input type="submit" value="注册">
<p style="color: red">{{ error_msg }}</p>
</p>
</form>
</body>
</html>
使用使用form组件实现注册功能组件实现注册功能
views.py
先定义好一个RegForm类:
from django import forms
# 按照Django form组件的要求自己写一个类
class RegForm(forms.Form):
name = forms.CharField(label="用户名")
pwd = forms.CharField(label="密码")
再写一个视图函数:
# 使用form组件实现注册方式
def register2(request):
form_obj = RegForm()
if request.method == "POST":
# 实例化form对象的时候,把post提交过来的数据直接传进去
form_obj = RegForm(request.POST)
# 调用form_obj校验数据的方法
if form_obj.is_valid():
return HttpResponse("注册成功")
return render(request, "register2.html", {"form_obj": form_obj})
login2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册2</title>
</head>
<body>
<form action="/reg2/" method="post" novalidate autocomplete="off">
{% csrf_token %}
<div>
<label for="{{ form_obj.name.id_for_label }}">{{ form_obj.name.label }}</label>
{{ form_obj.name }} {{ form_obj.name.errors.0 }}
</div>
<div>
<label for="{{ form_obj.pwd.id_for_label }}">{{ form_obj.pwd.label }}</label>
{{ form_obj.pwd }} {{ form_obj.pwd.errors.0 }}
</div>
<div>
<input type="submit" class="btn btn-success" value="注册">
</div>
</form>
</body>
</html>
看网页效果发现 也验证了form的功能:
前端页面是form类的对象生成的 –>生成HTML标签功能
当用户名和密码输入为空或输错之后 页面都会提示 –>用户提交校验功能
当用户输错之后 再次输入 上次的内容还保留在input框 –>保留上次输入内容
Form那些事儿那些事儿
常用字段与插件常用字段与插件
创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户请求数据的验证,插件用于自动生成HTML;
initial
初始值,input框里面的初始值。
class LoginForm(forms.Form):
username = forms.CharField(
min_length=8,
label="用户名",
initial="张三" # 设置默认值
)
pwd = forms.CharField(min_length=6, label="密码")
error_messages
重写错误信息。
class LoginForm(forms.Form):
username = forms.CharField(
min_length=8,
label="用户名",
initial="张三",
剩余9页未读,继续阅读
资源评论
weixin_38645208
- 粉丝: 6
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械设计大型举重机卷绳机sw17可编辑非常好的设计图纸100%好用.zip
- 机械设计单片式离合器sw20可编辑非常好的设计图纸100%好用.zip
- 英飞凌TC系列旋变软解码开发,含程序与电路
- 抖音自动点赞自动滚屏app
- 有源电力滤波器APF仿真,ip-iq谐波电流检测和无功电流检测 matlab simlink仿真 滞环控制 PI控制 很适合用于初学者学习 了解电能质量研究方向可用于电能质量相关的基础仿真控制
- mmexport1735898743184.mp4
- 项目简单,适合新手入门(飞翔的小鸟java源代码)
- 机械设计单柱巷道式堆垛机(sw16可编辑+cad)非常好的设计图纸100%好用.zip
- mmexport1735898729052.mp4
- 机械设计电脑光驱组件自动贴膜设备sw17非常好的设计图纸100%好用.zip
- comsol二维裂隙流压裂水平井
- 机械设计复合铜换热器组装机_step非常好的设计图纸100%好用.zip
- AW35616 linux驱动
- 反步法 PID(backstepping)控制算法下的USV(无人船 艇)路径跟踪控制方案(考虑洋流扰动) Norrbin Fossen模型+LOS制导+PID 反步法控制 Matlab Simuli
- 机械设计电液滑环(sw15可编辑+工程图)非常好的设计图纸100%好用.zip
- 机械设计滚轮跳动度检查step非常好的设计图纸100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功