Form表单及django的form表单的补充
作者:谷子的 发布时间:2023-07-21 09:40:04
标签:django,form,表单
form 表单中的button按钮
<button>提交</button> :放在form表单中,会有一个提交事件,会提交form数据,
<input type="button" value="提交“> :是一个单纯的按钮,没有任何默认事件,
先匹配url和视图函数
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login),
]
视图函数
def login(request):
if request.method == "POST":
return HttpResponse("OK!")
return render(request,"login.html")
在前端页面的显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login/" method="post">
{# csrf_token 在前端会渲染出一个input标签,是一组键值对,键是csrfmiddlewaretoken,值是随机字符串,会随着下面的input标签一起提交,只有这种形式发送post的请求才能被接收,#}
{% csrf_token %}
<p>用户名:<input type="text" name="user"></p>
<p>密码:<input type="password" name="pwd"></p>
<input type="submit">
</form>
</body>
</html>
----上面是正常的使用HTML的原生form表单,
现在使用django提供的form表单,在views里要创建一个类,继承django的forms类,
然后在视图函数中实例化出一个form对象,利用类的字段在前端页面进行显示,
as_p 是把后端所有的字段都显示,定制性不好,可以自定义,利用对象,跟上字段
在views 创键类,
from django.shortcuts import render,HttpResponse
# Create your views here.
#使用django的form类
from django import forms
class LoginForm(forms.Form):
user = forms.CharField()
pwd = forms.CharField()
def login(request):
if request.method == "POST":
return HttpResponse("OK!")
form_obj = LoginForm() -------------------实例化对象,
return render(request,"login.html",{"form_obj":form_obj}) ---传到前端显示
在前端接收,渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login/" method="post">
{# csrf_token 在前端会渲染出一个input标签,是一组键值对,键是csrfmiddlewaretoken,值是随机字符串,会随着下面的input标签一起提交,只有这种形式发送post的请求才能被接收,#}
{% csrf_token %}
<p>用户名:{{ form_obj.user }}</p> ------------
<p>密 码:{{ form_obj.pwd }}</p> -------------------
<input type="submit">
</form>
</body>
</html>
查看前端的元素,
---前端现在可以输入数据,但后端要对提交的数据要验证,
用到is_valid()的方法,取到提交的所有数据,cleaned_data , 如果有错误信息 用errors,
#使用django的form类
from django import forms
class LoginForm(forms.Form):
user = forms.CharField(max_length=9,min_length=5,error_messages={"required":"必填"})
pwd = forms.CharField()
def login(request):
if request.method == "POST":
#post的请求验证
formobj = LoginForm(request.POST)#拿到所有的提交数据
if formobj.is_valid():#都符合字段要求,
#取出所有符合字段要求的数据,用cleaned_data
print(formobj.cleaned_data)#拿到字典格式的数据
else:
print(formobj.errors)#如果是提交错误的数据,用errors
return HttpResponse("OK!")
form_obj = LoginForm()
return render(request,"login.html",{"form_obj":form_obj})
来源:https://www.cnblogs.com/gyh04541/p/8016369.html
0
投稿
猜你喜欢
- 当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障。作为SQL Server数据库管理员,了解数据日志文件的作用,以
- 起因修改了表结构以后执行python3 manage.py migrate 报错:django.db.utils.OperationalEr
- 前言支持向量机 (Support Vector Machine, SVM) 是一种监督学习技术,它通过根据指定的类对训练数据进行最佳分离,从
- 前言最近突然对爬虫有了一点兴趣,所以打算学一下爬虫,但是在安装使用一些库时,遇到了一些不小的麻烦,对于我来说,最麻烦的就是配置环境了,老是有
- 目录文件读写读文件写文件StringIO和BytesIOStringIOBytesIO操作文件和目录环境变量操作文件和目录文件读写读文件tr
- 昨天我问过这个问题怎么用ADODB.Stream来读取或写入文件,而不是用fso,不过没人回答到点上,今天搞定了.贴出来给觉得有用的朋友,希
- 本文实例讲述了Python利用Scrapy框架爬取豆瓣电影。分享给大家供大家参考,具体如下:1、概念Scrapy是一个为了爬取网站数据,提取
- 前言前几天逛github发现了一个有趣的并发库-conc,其目标是:更难出现goroutine泄漏处理panic更友好并发代码可读性高从简介
- 时下,个性ico图标却成为一些主流大牌网站提高用户体验(UE)的一个“时髦”玩法,那么,是如何在IE地址栏显示出网站的个性图标的呢?常浏览网
- 你在使用pandas处理DataFrame中是否遇到过如下这类问题?我们需要删除某一列所有元素中含有固定字符元素所在的行,比如下面的例子:&
- 在一些项目中, 我们会使用json 来将字符串转为结构体,但是很多时候,这种结构体只会用一次,基本上只会用于反序列化, 对于这种只用到一次的
- 随机显示图片代码:<div class="sidebarcen"><script language=&
- python中有的df列比较长head的时候会出现省略号,现在数据分析常用的就是基于anaconda的notebook和sypder,在sp
- 关于建立索引的几个准则:1、合理的建立索引能够加速数据读取效率,不合理的建立索引反而会拖慢数据库的响应速度。2、索引越多,更新数据的速度越慢
- 本文实例讲述了Python简单实现TCP包发送十六进制数据的方法。分享给大家供大家参考,具体如下:举例: 0x12, 0x34可以直接拼成
- 问题怎样实现一个按优先级排序的队列? 并且在这个队列上面每次 pop 操作总是返回优先级最高的那个元素解决方案下面的类利用 heapq 模块
- 相关验证码文章:asp制作验证码的方法 轩魂ASP中文验证码下载 先产生一个4位数的随机码源代码:ychar="0,1,2,3,4
- 那就废话不多说,直接上代码吧!new_array = np.zeros((107,4))# 共107行 每行4列 初值为0>>&
- 这篇文章主要介绍了基于python3抓取pinpoint应用信息入库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- isset($var); //为false 没有定义没有定义为假 $var = ''