django笔记,django2
学习笔记,仅供参考,有错必纠
形式表单
形式表单的主要作用是和服务器进行交互,为服务器端提供数据。
名字属性形式表单有名字属性,名称属性类似于客户端与服务器端之间的约定。
形式表单中能使用名字属性的标签:
投入
挑选
文本区域
形式表单提交数据案例
首先,我们新建一个工程我的网站3:
姜戈-管理开始项目我的网站3开启服务:
python manage.py runserver在项目文件夹下,新建一个模板文件夹模板,并更改settgins.py中模板列表里的DIRS,设置模板路径:
模板=[
{
后端姜戈。模板。后端。姜戈。django模板,
DIRS: [os.path.join(BASE_DIR, templates)],
APP_DIRS :对,
选项:{
上下文处理者:[
姜戈。模板。上下文处理器。调试,
姜戈。模板。上下文处理器。请求,
姜戈。贡献。auth。上下文处理器。授权,
姜戈。贡献。消息。上下文处理器。消息,
],
},
},
]在项目下的我的网站3文件夹中新建试图模块views.py,并创建本案例所需的视图函数:
# -*-编码:utf-8 -*-
从django.http导入HttpResponse
从django .捷径导入渲染
定义测试表单(请求):
此视图函数用于示意形式表单的提交
if request.method==GET :
# 返回表单
返回渲染(请求, test_form.html )
elif request.method==POST :
# 返回表单提交内容的结果
返回HttpResponse(没有结果)设置路由(urls.py):
来自姜戈. contrib导入管理
从django.urls导入路径
从django.urls导入重新路径
从。导入视图
urlpatterns=[
路径( admin/,admin.site.urls),
re_path(r^test_form/$,views.test_form)
]test_form.html
!声明文档类型
html lang=en
头
meta charset=UTF-8
标题是!/标题
/头
身体
形式
差异
兔兔姓名:输入类型=text name=bunnyname
/div
差异
输入类型=提交值=提交
/div
/表单
/body
/html在这个超文本标记语言文档中,我们的形式标签没有设定任何属性值,这意味着数据将提交到当前页面,且默认请求方式为GET(method=GET )
向http://127 .0 .0 .1:8000/测试_表单/发起请求
输入兔兔姓名为黄,并提交:
可以看到提交的数据(黄)以及投入标签的名字属性值(兔子名)均以查询参数的方式增加到全球资源定位器(统一资源定位器)中。
现在,我们尝试一下提交表单数据到服务器,首先,我们要在settings.py中把中间键注释掉:
中间件=[
姜戈。中间件。安全。安全中间件,
姜戈。贡献。会话。中间件。会话中间件,
姜戈。中间件。常见。通用中间件,
# 姜戈。中间件。csrf。 csrfviewmiddleware ,
姜戈。贡献。auth。中间件。认证中间件,
姜戈。贡献。消息。中间件。消息中间件,
姜戈。中间件。点击顶举。xframeoptions中间件,
]我们更改一下test_form.html,在其中增加3个多选框,设置其名字属性为fav,并将其请求方式改变为帖子:
!声明文档类型
html lang=en
头
meta charset=UTF-8
标题是!/标题
/头
身体
表单方法=POST
差异
兔兔姓名:输入类型=text name=bunnyname
/div
差异
兔兔年龄:输入类型=text name=bunnyage
/div
差异
兔兔食物:input type= text name= bunny food
/div
爱好:输入类型=checkbox name=fav value=吃饭 吃饭
输入类型=复选框名称=收藏值=睡觉 睡觉
输入类型=复选框名称=收藏值=舔毛 舔毛
差异
输入类型=提交值=提交
/div
/表单
/body
/html再更改一下views.py:
定义测试表单(请求):
此视图函数用于示意形式表单的提交
if request.method==GET :
# 返回表单
返回渲染(请求, test_form.html )
elif request.method==POST :
# 返回表单提交内容的结果
dic=dict(请求。帖子)
打印(提交的内容是:,dic)
html=请求 POST.get(bunnyname ,) 的信息
返回HttpResponse(html)
向http://127.0.0.1:8000/test_form/发起请求,输入数据,点击提交:
结果如下:
再看一下cmd界面中的输出:
提交的内容有:{ 兔兔名:[黄],兔兔龄:[10],兔兔食:[兔兔食], fav: [吃,舔毛]}如果我想得到 fav 键对应的列表
views.py
定义测试表单(请求):
该视图功能用于指示表单的提交
if request.method==GET :
#返回表单
return render(请求, test_form.html )
elif request.method==POST :
#返回表单提交的结果
dic=dict(请求。帖子)
打印(提交的内容是:,dic)
fav=请求。POST.getlist(fav )
打印( fav=,fav)
Html=request.post.get(兔子名,)信息
Return HttpResponse(html)向http://127.0.0.1:8000/test_form/发起请求,输入数据,点击提交:
cmd中的输出为:
提交的内容有:{ 兔子名:[黄],兔子年龄:[10],兔子菜:[胡萝卜], fav: [吃饭,睡觉,舔毛]}
Fav=[吃饭,睡觉,舔毛]从结果中,我们得到了Fav中的列表。
我们在test_form.html中添加一个大文本框,并将其name属性设置为note:
!声明文档类型
html lang=en
头
meta charset=UTF-8
标题是!/标题
/头
身体
表单方法=POST
差异
兔子名称:输入类型=文本名称=兔子名称
/div
差异
兔子年龄:输入类型=text 名称=bunnyage
/div
差异
兔粮:输入type= text name=兔粮
/div
爱好:输入type= checkbox name= fav value= eating 吃
type= checkbox name= fav value= sleep 睡眠
type= checkbox name= fav value=舔毛舔毛
差异
textarea rows= 10 cols= 20 name= note
评论
/textarea
/div
差异
输入类型=提交值=提交
/div
/表单
/body
/html向http://127.0.0.1:8000/test_form/发起请求,输入数据,点击提交:
看看cmd中的输出:
提交的内容有:{ 兔兔名:[黄],兔兔龄:[10],兔兔食:[兔兔食], fav: [吃,舔毛],注:[安徽财经大学\。
Fav=[吃,舔毛]
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。