Template
模板结构
- block 块,规划内容,坑
- extends 继承
- include 包含
- block + extends
- 和include配合
网页
模板在项目中使用
- 会创建一个base
- 针对于每个模块,创建自己模块的base
- 比如,用户模块
- 登录和注册采用相同的策略
- 摘要算法(单向不可逆算法)
静态资源
- Django中还内置了一个简单的Http服务器
- Http为我们提供资源的
JSON
- JSONObject
- JSONArray
- JSON是一个类字典结构
- JSONObject 和 JSONArray 是可以继续嵌套的
获取参数
- 路径(path)
- ip:port之后,?之前
- 位置参数
- 按照位置进行匹配
- 要求,圆括号数必须和视图函数中的参数一一对应(除了默认的request)
- 关键字参数
- 使用格式 (?P\d+)
- 要求,在视图函数中必须存在和 name 一致的参数,顺序不重要
- 请求参数 GET,POST
url反向解析
- 在根urls中,使用namespace进行标记
- 在应用的urls中,使用name进行标记
- 查找的时候根据 namespace:name
- 带参数
- 位置参数
- 模板中写
- {% url ‘namespace:name’ xxx yyy zzz %}
- python代码
- reverse(‘namespace:name’, args=(xx,yy,zz))
- 关键字参数
- 模板中写
- {% url ‘namespace:name’ key1=xxx key2=yyy key3=zzz %}
- = 左右两边千万不要出现空格
- 在python代码中
- reverse(‘namespace:name’, kwargs={key1: xx, key2: yy, key3:zz })
小细节
- 路径无特殊说明,需要添加/结尾
作用:
添加斜线可以减少请求匹配次数,可以缩短响应时间
homework
- 班级学生查询联动实现
- 学生可点击,点开显示个人信息
- 信息可以修改
request
def send_request(request):
print(type(request))
print(request.path)
print(request.method)
print(request.encoding)
print(request.GET)
print(request.POST)
print(request.META)
meta = request.META
print(meta.get('REMOTE_ADDR'))
if meta.get("REMOTE_ADDR") =="10.0.118.33":
return HttpResponse('请求失败了')
print(meta.get('USER'))
return HttpResponse('请求成功')