djangoForm组件
https://www.cnblogs.com/jabbok/p/9273786.html
在之前学习了html form信息传递到django,然后进行处理,但是这很不方便。
django有自己的组件Form
1 django Form的验证思路
前端:还是提交form表单
后端:在app.views的函数里,把请求传递到forms.py的forms.Form类,进行匹配,得到正确和错误信息。
主要有三部分只是,views里的响应机制,form.py里创建响应的表单类,html里的模板信息
views:
def user_login(request):
if request.method == 'POST': #当收到POST请求
form = AddForm(request.POST) #实例化表单类,将接受到的数据通过AddForm验证 if form.is_valid(): #验证请求的内容是否验证通过。通过是True,否则False。
a = form.cleaned_data['a'] #cleaned_data类型是字典,里面是提交成功后的信息
b = form.cleaned_data['b'] #从表单类中获取的数据赋值给a,b。
return HttpResponse(str(int(a) + int(b))) else: #当收到GET请求
form = AddForm() #实例化表单类,展示表单类中的字段,表现到HTML就是<form>元素,实质就是渲染一张空表单,让用户填数据 return render(request,'index.html',{'form':form}) def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
print(type(form),form)
if form.is_valid():
return HttpResponse('good!')
else:
form = NameForm()
print(type(form),form) return render(request,'name.html',{'form':form})
forms
from django import forms class AddForm(forms.Form):
a = forms.IntegerField() #表单类的字段会映射到HTML表单的<input>元素
b = forms.IntegerField() #这和models类似
c = forms.IntegerField() #forms可选多种字段类型,对应不同的HTML输入元素 class NameForm(forms.Form):
your_name = forms.CharField(label='your name',max_length=120)
html
user_login:
{# 这是一个表单渲染#}
<form method="post">
{# 防伪保护#}
{% csrf_token %}
{{ form }}
<input type="submit" value="提交">
</form>
{{ form }}在get和post时,都会渲染为:
<tr><th><label for="id_a">A:</label></th><td><input type="number" name="a" required id="id_a"></td></tr>
<tr><th><label for="id_b">B:</label></th><td><input type="number" name="b" required id="id_b"></td></tr>
<tr><th><label for="id_c">C:</label></th><td><input type="number" name="c" required id="id_c"></td></tr>
getname:
<form action="/getname/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="提交">
</form>
{{ form }}在get和post的渲染,post多了一个value。
<tr><th><label for="id_your_name">your name:</label></th><td><input type="text" name="your_name" maxlength="120" required id="id_your_name"></td></tr>
<tr><th><label for="id_your_name">your name:</label></th><td><input type="text" name="your_name" value="jab" maxlength="120" required id="id_your_name"></td></tr>
2 表单功能
djangoForm组件的更多相关文章
- Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合
Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的 ...
- 8.Django-form组件
1.form组件的校验功能 文件formsdemo models from django.db import models # Create your models here. class UserI ...
- Django-form组件和ModelForm组件
一. 构建Form表单 通过建一个类,添加需要进行验证的form字段,继而添加验证条件 from django import forms from django.forms import widget ...
- python3-开发进阶Django-form组件中model form组件
Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样 ...
- Django--form组件cookie/session
Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_ ...
- Django-Form组件-forms.ModelForm
froms.ModelForm 具有models操作数据库字段的功能,还具有Form的功能.较Form组件而言,根据model自动生成Form. 使用注册的案例进行初步认识 # 使用ModelForm ...
- Django-Form组件-forms.Form
forms.Form 在之前的示例HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时很多时候都需要对用户的输入做校验,比如校验用 ...
- Djangoform组件——ModelForm的基本使用
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...
- Django-Form组件之字段
Form类 创建Form类时,主要涉及到 [字段] 和 [插件],字段用于对用户请求数据的验证,插件用于自动生成HTML; 1.Django内置字段如下: 1 2 3 4 5 6 7 8 9 10 1 ...
随机推荐
- Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms
解决方式 1.从官网下载一个旧版本的 Android SDK tools 25.2.3.tools_r25.2.3-windows.zip. 2. 解压 3. 替换原来sdk目录下tools
- ZOJ - 3954 Seven-Segment Display 【状态标记】
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3954 题意 有一块 LED 灯 然后上面有七块灯管 在显示不同数 ...
- Local storage htm5
使用本地存储,web应用可以在用户浏览器中本地存储数据. 在HTML5之前,应用数据存储必须使用cookie,包括每个服务端的请求,本地存储更加安全,并且可以存储大量的数据到本地,不影响网站的性能. ...
- 【MongoDB学习-在.NET中的简单操作类】
1.新建MVC项目, 管理NuGet包,进入下载MongDB.net库文件 2.新增项目DAL数据访问层,引用以下库文件: 3.C# 访问MongoDB通用方法类: using MongoDB.Dri ...
- 【转载】如何在 C#中访问 JavaScript函数?
如何在 C#中访问 JavaScript函数? 时间:13-10-17 栏目:Unity3D教程 作者:zqcyou 评论:0 如何在 C#中访问 JavaScript函数?答案如下:c#代码 ...
- 使用idea导入远程git版本库项目
1.选择git方式导入 2.设置远程git项目地址 3.测试是否连接成功 4.选择yes,检查项目 5.如果有下一步,直接next下去就可以了.
- RTMP协议的理解
RTMP协议:real time message protocol 工作原理: 先采集摄像头视频和麦克风音频信息,再进行音视频的编码(mpeg),通过FMLE(Flash Media Live Enc ...
- 五、hibernate在myeclipse中生成实体和映射
- Robot Framework基础学习(一)
Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用 变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edi ...
- Game of Peace
Time Limit: 4000ms, Special Time Limit:10000ms, Memory Limit:65536KB Total submit users: 20, Accepte ...