python学习第二十一天
url默认值
url(r'^index/', views.index,{'name':'root'}),
def index(request,name)
print(name)
return HttpResponse('ok')
url命名空间
工程urls.py
url(r'^a/', include("app01.urls",namespace='author'))
app01urls.py
appname='app01'
url(r'^(?P<pk>\d+)/$', views.detail,name='detail')
v =reverse('author:detail',kwargs={'pk':11}) 生成URL
{% url ('author:detail') pk=11 %}
获取请求相关数据
from django.core.handlers.wsgi import WSGIRequest
request.environ 获取所有请求相关数据
for k,v in request.environ.items(): 循环获取请求数据的key-value值
print(k,v)
request.environ['HTTP_USER_AGENT'] 获取用户客户端类型相关数据,pc或者手机,手机型号
模板继承
指定继承的模板
{% extends '模板文件名' %}
指定模板被替换的位置,其中继承文件中需要在中间加上替换的内容,对应位置的name值需要相同,不同位置的name值要区分。在模板文件<style>和<script src='jquery.js'>下都单独写一个block块用于替换继承文件独有的css样式和js代码
{% block name %}
{% endblock %}
模板导入
{% include '模板名称' %}
自定义simple_tag
1 在APP中创建templatetags目录
2 在templatetags目录中创建python文件,xxoo.py
3 from django import template
from django.utils.safestring import mark_safe
register =template.Library()
@register.simple_tag
def func()
4 注册APP
5 在模板顶部{% load xxoo %},或者在继承文件的extends下面
6 在<body>中{% func arg1 arg2 %}
注:参数任意数量
自定义filetr
上面第三部装饰器改为register.filter,第六步改为{{'arg1'|xxoo:'arg2'}},最多传两个参数,可以在模板语言的if中作为判断条件
自定义分页
page_str ='''<a href='/user_list/?p=1'>1</a>
<a href='/user_list/?p=2'>2</a>
<a href='/user_list/?p=3'>3</a>'''
{{ page_str|safe }} 前端标签字符串为安全的
from django.utils.safestring import mark_safe
page_str =mark_safe(page_str) 后台标记字符串为安全的
cookie
res =redirect('/index/')
res.set_cookie('username',u) 设置cookie
request.COOKIES.get('username') 获取cookie
res.set_signed_cookie('username',u,salt='sadasdsadas') 设置加密的cookie
request.get_signed_cookie('username',salt='sadasdsadas') 获取加密cookie
$.cookie("list_pager_num", 30,{ path: '/' }); jquery设置cookie
设置cookie时可以使用的参数
key, 键 value='', 值 max_age=None, 超时时间,以秒为单位 expires=None, 超时时间,用datetime设置时间(IE requires expires, so set it if hasn't been already.) path='/', Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问 domain=None, Cookie生效的域名 secure=False, https传输 httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

浙公网安备 33010602011771号