2019-12-27django执行流程,HttpRequest与HttpResponse与模板语言

django执行流程

  1. 在浏览器上输入地址url
  2. django框架会拿到url中的路径部分和urls.py中的urlpatterns中的路由进行匹配,如果匹配成功则会自动执行对应的视图函数。否则返回404

HttpRequest与HttpResponse

  1. 当访问项目的时候,django框架会将请求的所有的信息封装到HttpRequest对象中,并且将此对象传递的参数传递给视图函数的一个参数,因次我们将第一个形参命名为request。HttpRequest对象中封装了请求的所有信息,例如请求方式,传递的参数。
  2. 我们在视图函数中进行逻辑判断操作,例如查询数据库。
  3. 必须要有返回值,返回值类型必须是HttpResponse对象或者其子类对象。

模板语言

  1. 获得变量值{{ 在render方法中传入的第三个参数一个字典的键名 }}
hero_dict = {'name': 'zs', 'age': 18}
    return render(request, 'test2.html', {'t': hero_dict})
在test2.html中
{{ t }}
  1. 可以调用对象的无参数的并且有返回值的方法

3.变量中点的用法
①如果数据类型是列表通过“点索引”的方法获取元素
②如果数据类型是字典通过“点key”的方式获取元素
③如果数据类型是对象,通过”点属性,点无参数并且有返回值的方法“的方式获取内容

  1. 注释
    单行注释:{# #} 快捷键:ctrl+/
    多行注释:{% comment %}{% endcomment %} 快捷键:shift+ctrl+/
  2. 过滤器 filters
    作用:使用过滤器来改变变量内容的显示
    语法:{{便令名称|过滤器}}
用法 效果
{{变量名称|upper}} 变为大写
{{变量名称|lower}} 变为小写
{{变量名称|length}} 求变量的长度
{{变量名称|slice:'0:3'}} 切片
  1. for循环遍历
{% for 临时变量 in 序列%}
    {{ 临时变量 }}<br>
{% endfor %}

①{{ forloop.counter }}:打印循环次数
②{% empty %}:如果序列为空,只运行{% empty %}内的代码

{% for game in game_list %}
    <li>{{ game }}</li>
    {% empty %}
    <h1>我们不玩</h1>
{% endfor %}
  1. if判断
{% if ms|length > 3 %}
    pass
{% else %}
    pass
{% endif %}
  1. 加载图片
    ①创建 static目录
    ②在settings.py中设置变量
    STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
    ③在html页面中首先加载static {%load static%}
    ④使用static标签:<img src="{% static '图片路径'}"/>
    例如:<img src="{% static '1.png' %}" alt="" width=" ">
  2. 继承:{% extends ‘路径’ %}
    ①base.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>头部....</h1>
{% block main %}

{% endblock %}
<h1>脚部...</h1>
</body>
</html>

②index.html

{% extends 'base.html' %}
{% block main %}
    index...
{% endblock %}

  1. 引入:{% include ‘路径’ %}
    ①main.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
index2...
{% include 'footer.html' %}#引入脚
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是脚...</h1>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Django 准备 “虚拟环境为什么需要虚拟环境:到目前位置,我们所有的第三方包安装都是直接通过 pip inst...
    33jubi阅读 5,123评论 0 5
  • 自强学堂Django教程 目录 Django是目前最流行的Python Web框架。 一、Django的MTV模式...
    CaiGuangyin阅读 4,919评论 4 3
  • MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Templa...
    lkning阅读 4,282评论 0 0
  • 23 模板 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样...
    大鹏_c5f9阅读 3,081评论 0 0
  • 精进日打卡 打卡203天 【学习概记】 读《中国教育制度史》 【好言好语】 人生一世,草木一秋。 冷静是最优雅的态...
    胡海南阅读 1,202评论 0 0

友情链接更多精彩内容