注意post和get请求时url
get请求框架会自动补全最后一个斜杠
post请求不行,必须写完整
post请求会做防盗链检验
如果报403错误,加上标签{% csrf_token %}
面向对象思想:
封装:提高数据安全性
继承:解决代码纵向重复性,提高复用性
多态:提高代码灵活性,提高扩展性
技术进步的原则:简单,高效,安全
模板与静态资源:
(1)子模板:
1.HTML响应模块:
就是在子模块目录下建立templates目录,再做下路径隔离,然后放进去页面
2.静态资源:
在子模板目录下建立static目录,做路径隔离,把静态资源放进去
在 HTML页面用img标签引入:<img src="/static/myblog/git.png" alt="">
在settings中做设置:STATIC_URL = " /static/ "
(2)共用的:
1.HTML响应模板:
在项目目录下建立一个目录,做一下路径隔离,然后把页面放进去
接着在settings文件做设置:TEMPLATES = [ { 'DIRS': ["temp"], } ]
2.静态资源:
在项目目录下建立static目录,做路径隔离,把静态资源放进去
在 HTML页面用img标签引入:<img src="/static/git.png" alt="">
在settings中做设置:STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static") ]
DTL模板语法
变量:是用来临时存储数据的
插值表达式:{{变量}} {{对象.属性名称}}
注释:
单行注释: {# 注释的内容 #} 在页面读取的时候直接忽略
多行注释:{% comment %}注释的内容{% endcomment %} 在页面读取的时候直接忽略
标签{% %}:
选择结构:{% if 条件 %} {% elif 条件 %} {% else %}{% endif%}
循环结构:
静态的路由的核心操作:
当使用static这个标签时,可能会报Invalid block tag on line 16: 'static'. Did you forget to register or load this tag?
这个错误,意思是说这个标签不识别,问你有没加载或者注册, 解决方案就是加载这个标签用{% load static %}
URL路由的核心操作:
第一种方案(推荐):
父路径提供namespace设置
子路径提供name设置
{% url ‘namespace的值:name的值’ %}
第二种方案:
子路径提供app_name和name设置
{% url ‘namespace的值:name的值’ %}
转发和重定向
1.转发:
是一次请求,地址栏不变
2.重定向:
是两次请求,地址栏发生变化,
好处:就是可以打向另一个视图函数做对应的数据准备及相应的处理
注意:如果携带参数,被重定向的视图函数提供形式参数来接受,而且URL配置的时候要准备一个位置来携带这个参数