05.Django-form表单与请求的生命周期
Django中请求的生命周期
HTTP请求及服务端响应中传输的所有数据都是字符串
步骤
- 用户在浏览器中输入
url时,浏览器会生成请求头和请求体发给服务器 url经过wsgi和中间件,到达路由映射表,在路由中一条一条进行匹配- 视图函数根据客户端的请求查询响应的数据,返回给
Django Django把客户端想要的数据做为一个字符串返回给客户端- 客户端浏览器接收到返回的数据,经过渲染后显示给用户
FBV
一个url对应一个视图函数
在url匹配成功之后,会直接执行对应的视图函数。
CBV
一个url对应一个类
url匹配成功找到视图函数中对应的类,然后这个类回到请求头中找到对应的Request.Method- 如果客户端以post的方式提交请求,就执行类中的post方法
- 如果客户端以get的方式提交请求,就执行类中的get方法
步骤:
- 服务端发送包含
url和method的请求,这两个信息都是字符串类型 - 服务端通过路由映射表匹配成功后会自动去找dispatch方法
Django会通过dispatch反射的方式找到类中对应的方法并执行- 勒种的方法执行完毕后,会把客户端想要的数据返回给dispatch方法
- dispatch方法把数据返回给客户端
form表单
定义:
Django的表单系统中,所有的表单都继承自django.forms.Form类
Django的表单系统
form_obj.as_p #在html网页渲染所有的字段
label #为一个标签添加id号
form_obj.字段 #渲染指定的字段
min_length #绑定字段的最短长度
max_length #绑定字段的最长长度
is_valid() #验证用户输入的信息是否有效,返回一个布尔值
cleaned_data() #清洗数据
error_massage() #定义错误的返回信息
#文件上传:
request.POST.get("file") #获取上传的文件的文件名
request.FILES #获取上传文件的对象 结果是一个字段
file_obj.name #获取上传文件在内存中的名字
#上传文件时要使用分片传输的方式
#上传
enctype="multipart/form-data" #form表单的属性里添加
#接收
if request.method=="POST":
file_obj = request.FILES.get("up_file")
fl = open(file_obj.name,'vb')
for i in file_obj.chunks():
fl.write(i)
fl.close()
#可以在class Meta中设定的功能
model = model.UserInfo #显示对于Model的字典,这里显示用户信息表
fields = "__all__" #显示数据表中所有的字段
fields = ["username","age"] #显示数据表的某些指定的字段
exclude = ["email"] #不显示数据表的某些字段
#自定义页面的标签
labels = {"username":"用户名","age":"年龄","email":"邮箱"}
#自定义在标签后面显示的提示帮助信息
help_texts = {"username":"请输入正确的用户名","email":"请输入正确的邮箱"}
#自定义错误信息,用户输入错误时提示
error_messages = {"username":{"required":"用户名不能为空"},"email":{"invalid":"邮箱不能为空"}}
#自定义标签的类型,在这里把email这个输入框的类型更改为email类型
from django import fields as field_widget
field_classes = {}"email":field_widget.EmailField}
#自定义插件(attrs为插件的属性)
from django.forms import widgets as formwidget
widgets = {"username":formwidget.Textarea(attrs={"class":"c1"})}
05.Django-form表单与请求的生命周期的更多相关文章
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- Django form表单 组件
目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- JDK HttpClient 单次请求的生命周期
HttpClient 单次请求的生命周期 目录 HttpClient 单次请求的生命周期 1. 简述 2. uml图 3. Http连接的建立.复用和降级 3.1 调用流程及连接的建立和复用 3.2 ...
- Django学习笔记之Django Form表单详解
知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...
- django Form表单的使用
Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...
- Laravel框架中Form表单Get请求搜索(在此感谢[https://simon8.com])
首先看一下HTML部分的Form表单 <form role="search" method="get" id="searchform" ...
- Django form表单
Form介绍 之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来.与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入, ...
- Django Form表单组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
随机推荐
- 【题解】poj 3254 玉米田
假如我们知道第i-1行的有x种放法,那么对于第i行的每一种放法都有x种,所以定义dp[i][j]表示第i行状态为j时的方法数,有转移方程:dp[i][j]=sum(dp[i-1][k]) k表示i-1 ...
- Wfuzz使用学习
工具用了不总结,使用命令很容易生疏,今天就把笔记梳理总结一下. 0x01 简介 WFuzz是用于Python的Web应用程序安全性模糊工具和库.它基于一个简单的概念:它将给定有效负载的值替换对FUZZ ...
- Elasticsearch URI search 查询语法整理
Elasticsearch URI search 一.请求体查询与空查询 1. 请求体查询(request body search) 简单查询语句(lite)是一种有效的命令行adhoc查询.但是,如 ...
- Java—线程的生命周期及线程控制方法详解
线程生命周期5种状态 介绍 线程的生命周期经过新建(New).就绪(Runnable).运行(Running).阻塞(Bolocked)和死亡(Dead) 状态转换图 新建(New) 程序使用 ...
- 6.2 Go 匿名字段
6.2 Go 匿名字段 Golang匿名字段:可以像访问字段成员那样,访问匿名字段方法,go编译器自动查找. package main import "fmt" type Stud ...
- Django操作cookie实例
cookie项目文件: templates模板: login.html {% load static %} <!DOCTYPE html> <html lang="en& ...
- docker 学习(一)
1. docker介绍 1)docker的出现 Docker是诞生于2013年,是dotCloud的一个开源项目,基于Google推出的GO语言实现.遵从Apache2.0协议. 2)docker介绍 ...
- java 字符串转为list
List<String> idList = Arrays.asList(irIds.split(","));
- logback如何配置springboot框架
创建logback-spring.xm在src/main/resources下面(springboot推荐使用logback-spring.xml而不是logback.xml)文件. logback- ...
- linux查看磁盘使用情况命令
第一:统一磁盘整体情况,包括磁盘大小,已使用,可用1.查看当前目录命令 df -h1结果: 统一每个目录下磁盘的整体情况 2.查看指定目录在命令后直接放目录名,比如查看“usr”目录使用情况: df ...