django笔记,django2

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: