Django学习笔记-GET和POST请求、设计模式和模板层

本文介绍了Django中GET和POST请求的处理方式,通过视图函数判断请求类型来执行不同操作。在GET请求中,常用request.GET.get()避免报错,而POST请求需注意csrf验证。Django采用MTV模式,模板层负责动态生成HTML。配置模板目录并在视图函数中通过loader.get_template()或render()加载并响应模板。
摘要由CSDN通过智能技术生成

GET和POST请求
无论GET或是POST请求,统一由视图函数处理,可通过request.method查看网络请求方式,在视图函数中可用判断语句进行分流:

if request.method=='GET':
	xxx
if request.method=='POST':
	xxx
else:
	pass

使用GET的常见场景

  1. 地址栏
  2. 超链接 <a href='地址‘?key=value>
  3. form表单中的method为get时,不常见

当GET使用查询字符串传递信息时,使用以下指令查询:

  1. request.GET[‘KEY’],就是URL中的key,该方法比较暴力,若key不存在则直接报错。若多个相同的key则只给出最后一个key对应的value值。
  2. request.GET.get(‘KEY’,‘该关键词不存在’),此方法在key不存在时会报后面提示语,不会直接网页报错。
  3. request.GET.getlis([‘KEY’),此方法会给出所有key对应的value值。

POST方法与GET用法一样,把上述语句中的GET换成POST即可。
POST请求必须按照post流程,因为存在csrf验证。初次调试时可以在setting.py中的MIDDLEWARE中注释该监测代码,注释csrfViewMiddleware语句

Django的设计模式和模板层
传统的开发模式基于MVC,模形、视图和控制。Django采用的开发模式是MTV,模型、模板和视图。弱化了控制层,控制层实际变为了urls.py文件,原来的视图层拆分成了模板层和视图层。

模板层
模板:

  1. 可根据字典数据动态变化的html网页。
  2. 可根据视图中传递的字典数据动态生成相应的HTML网页。

模板配置

  1. 创建模板文件夹,在项目中创建temolates文件夹,与manage.py同级。
  2. 在settings.py中进行TEMPLATES的配置。

TEMPLATES的配置:第二个一定需要配置,其他暂时不用。

  1. BACKEND:指定模板的引擎。
  2. DIRS:模板的搜索目录(一个或多个),就是templates位置。
  3. APP_DIRS:是否要在应用中的templates文件加载搜索模板文件,默认TRUE
  4. OPTIONS:有关模板的选项

配置DIRS

'DIRS':[BASE_DIR,'templates’]

模板的加载方式
方案一:通过loader获取模板,经HTTPresponse进行响应,在视图函数中。

from django.template import loader
# 通过loader加载模板
t=loader.get_template('模板文件名,即template文件夹中的xxx.html')
# 将t转化为HTML字符串
html=t.render()
# 用响应对象将转换的字符串内容返回给浏览器
return HttpResponse(html)

方案二:使用render()直接加载并响应模板,同样在视图函数中写代码。

from django.shortcuts import render
# 返回响应
return render(request,'模板文件名,即template文件夹中的xxx.html',字典数组)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值