03.django升级打怪学习记

00.模板

在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具。

模板处理:

a.加载

b.渲染

模板主要有两个部分

a.HTML静态代码

b.动态插入的代码段(挖坑,填坑)

01.语法

a.模板中的点语法:grades grade

属性或方法:grade.gname

索引:grades.0.gname

b.模板中的标签:语法{% tag %}

作用:b1.加载外部传入的变量

b2.在输出中创建文本

b3.控制循环或逻辑

cif语句

{% 表达式 %}

语句

{% elif %}

语句

{% else %}

语句

{% endif% }

d.for语句

{% for 变量 in 列表 %}

语句

{% empty %}

语句

{% endfor %}

e.注释

单行注释

多行注释

f.过滤器{{ var | 过滤器}}

作用:在变量显示前修改

add {{p.page | add:5}}

没有减法过滤器,但是假发里可以加负数

{{p.page | add: -5}}

lower

{{p.pname|lower}}

join:传递参数

{{students|join ‘=‘}}

{{var|defualt value}}

dateVal:指定格式转换日期为字符串,处理时间的

{{dateVal | data:‘y-m-d‘}}

g.html转义:将接受到的数据当成普通字符串处理还是当成HTML代码来渲染的一个问题

html:{{code|safe}}

{% autoescape off %}

code

{% endautoesape%}

{% autoescape on %}

code

{% endautoesape%}

05.视图概述

结构标签

*block

用来规划我们的布局(挖坑)

首次出现,代表规划

第二次出现,代表填充以前的规划

第三次出现,代表填充以前的规划,默认动作式覆盖

*如果不想覆盖,可以添加{{block.super}}

*这样实现增量操作

super:代表继承父类或超类中

*extends

继承

可以获取符模板钟的所有结构

*block+entends

化整为零

*include

*包含

*可以将页面作为一部分,嵌入到其他页面中

*include +block(由零聚一)

*三个标签也可以混用,尽量不要使用include

*如果我们继承自一个符模板,自模板自己直接重写页面结构式不生效的,只能在既有坑中进行填充。

urls

*路由器

——按照列表的书写顺序进行匹配的

——从上到下匹配,没有最优匹配的概念

*路由规则编写

——我们通常直接以结尾处直接添加反斜线

——参数

路径参数(位置参数——按照书写顺序进行匹配)

关键字参数(按照参数名称匹配,和顺序就无关了)

参数个数必须和视图函数参数个数一致(除默认的request以外)

*路由器中的参数使用()进行获取

——一个圆括号对应视图函数中的一个参数

06.视图

视图的本质就是一个Python中的函数

视图的响应分为两大类:

以JSON数据形式返回

以网页的形势返回:重定向到另一个网页/错误视图(40x,50x)

视图响应过程:浏览器输入->django获取信息并去掉Ip端口,

剩下路径->url路由匹配->视图响应->回馈到浏览器

07.URL反向解析

url反向解析

在根urls中:

path(‘view/‘,include(‘view.learn‘, namespace=‘view‘))

在子urls中

path(‘hello/‘, views.hello, name=‘sayhello’)

使用反向解析优点:如果在视图,模板中使用硬编码连接,在url配置发生改变时,需要变更代码非常多,这样导致我们的代码结构不是很容易维护,使用反向解析可以提高我们代码的扩展性和课维护性。

解决问题: https://docs.djangoproject.com/en/3.0/topics/http/urls/

Reversing namespaced URLs

反向解析:

*根据路由中注册的namespace和在子路由中注册name,这两个参数来动态获取我们的路径

*在模板中使用{% url`namesspace‘}

错误页面定制

*在错误中重写对应错误状态码的页面

*关闭Debug

*实现原则(就近原则)

07.HttpRequest

-------------------------------------------

双R

*Request

内置属性(method/path/GET/POST/META)

*Response

备注:

静态资源:

*动静分离

*创建静态文件夹

*在setting中注册STATICFILES_DIRS=[]

*在模板中使用

——先加载静态资源(%load static %)

——使用{% static xxx %} xxx相对路径

*坑点

——仅在debug模式可以使用

——以后需要自己单独处理

备注:pycharm手动修改py文件才会重载,修改html不会重载

原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12178031.html

时间: 2024-10-15 05:30:55

03.django升级打怪学习记的相关文章

05.django升级打怪学习记

迁移文件 *分两步实现 ——生成迁移文件 ——执行迁移文件 *迁移文件的生成 ——根据models文件生成对应的迁移文件 ——根据modules和已迁移文件差别 生成新的迁移文件 *执行迁移文件 ——先去迁移记录查找,哪些文件未迁移过 *app_label + 迁移文件名字 ——执行未迁移的文件 ——执行完毕,记录执行过程的迁移文件 ——重新迁移 *删除迁移文件 *删除迁移文件产生的表 *删除迁移记录 模型关系: 1:1 a.应用场景 b.实现: ——使用外键实现的 ——对外键添加了唯一约束 1

06.django升级打怪学习记

缓存 *提升服务响应速度 *将执行过的操作数据存储下来,再一定时间内,再次获取数据的时候,直接从缓存中获取 *比较理想的方案,缓存使用内存级缓存 *Django内置缓存 例子: 缓存底层 获取cache 缓存操作 缓存原理 a.没有缓存 b.有缓存第一次 c.有缓存不是第一次 中间件 中间件切点: AOP中间件: 实现统计功能 *统计IP *统计浏览器 实现权重控制 *黑名单 *白名单 实现反爬 *反爬虫 *实现频率控制 界面友好化 应用交互友好化 中间件 *调用顺序 ——中间件注册的时候是一个

UiAutomator2.0升级填坑记

UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 啰嗦 Google Android Developers 在2015年3月就发布了UiAutomator 2.0版本(下文简称U2),而公司的核心产品中用到还是UiAutomator老版本(下文简称U1),业界用U2的也不是很多,虽然有诸多问题和不便(如高版本OS中不支持Remo

Django Web开发学习笔记(5)

第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等. 一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在. 例如,Django本身内建有一些app,例如注释系统和自动管理界面. app的一个关键点是它

Django Web开发学习笔记(4)

第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多. Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门

Django Web开发学习笔记(1)

一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>> bool(False) False (2)数值型 Python的数值型数据包含两类:int和float型数据,需要注意的是还有一个complex的类型,也就是复数类型 >>> a = complex(1,3) >>> a (1+3j) >>> b

Alex Fung魔方转法学习记

我学了Alex Fung魔方转法,这是一种精确的数学法,且是一种思路,一个系统解决方案,一种原理,不用死记硬背公式. 这是一篇学习记,所有用到的算法必须去原文查看具体的数学公式和Java Applet的演示.因为我还不会编程演示,所以本文不self-contained,而像是一个数学课抄录的笔记,只是记录我的学习过程. 首先,请拿纸和笔——数学公式必须自己写一遍,自己推导一遍,使得自己看到那些符号,心里不发怵,所以写只是为了变得信任眼熟亲切记得. 魔方基础的令人讨厌气噎眼花缭乱终于整个头脑都拧巴

django升级2.1python升级3.7时出现的错误:"trying to load '%s': %s" % (entry[1], e) django.template.library.InvalidTemplateLibrary:

django升级2.1python升级3.7时出现如下的错误: "trying to load '%s': %s" % (entry[1], e) django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'crispy_forms.templatetags.crispy_forms_utils':

0040 重构工程(python django升级)

在Python或Django升级后,如果软件要做相应的升级,则需要重构工程. 1 先在CMD下创建工程 2 复制一份虚拟环境目录 Django的虚拟环境,原则上一个工程一个虚拟环境,如果多个工程共享一个虚拟环境,容易报错. 3 PyCharm打开工程,配置虚拟环境 找到File/Settings/Project/Project Interpreter 点击All,查看当前所有的虚拟环境,如果要为工程增加的虚拟环境已经存在,先删除原来的虚拟环境.因为如果有多个相同的虚拟环境,再增加这个虚拟环境,容