python-django框架研究_20191106
作者:互联网
python-django框架研究
前面讲了一个django的一个小的项目,基本了解了3点:
1,前端怎么编写的
2,前后端怎么交互的
3,后端怎么存入数据库的,简单的增删改查,
你已经是一个可以写一个小项目的人了,
现在讲解django的框架的知识点:
1,MVC框架,
MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。
用户通过控制器输入内容,然后模型去数据库取数据,然后通过视图进行展示,
控制器专门用来做对应关系,
模型专门用来做数据库的增删改查,
视图专门用来填充输入的html页面,
Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。
为什么叫MTV,而不是MVC呢?
django中的控制器是通过url.py和view.py来实现的,
模型是通过models.py在实现数据库的对应,
视图就是templates
用户输入,走入控制器,然后查询出结果,然后填充进入页面,
2,模板:
django的模板语言,
只需要记两种特殊符号:
{{ }}和 {% %}
变量相关的用{{}},逻辑相关的用{%%}。
---------------------1-----------
{{name}} -->变量
---------------------2----------
{%for i in list %}
{{ forloop.counter }}
{{ forloop.last }}
{{ i }}
{%endfor%}
---------------------3--------------
{%if 10>5%}
.....
{%else%}
.......
{%endif%}
---------------------4-----------------
{%if name in name_list%}
...
{%endif%}
----------------------------------------
Filters(过滤器)
我能意识到这个过滤器还是非常有用的,
Django的模板语言中提供了大约六十个内置过滤器。
还可以自己自定义过滤器,这个之后再说,
1,常用的filter
default
length
filesizeformat
date:'Y-m-d H:i:s'
slice
safe
truncatechars:20
2,自定义filter,
-----------------------------------------------
Tags(标签)
在django中和逻辑相关的都叫tag,比如for循环,
1,for循环,注意可以指定为空的语法
还可以在内层循环中取到外层的循环,这个后面要看看,
2,if else这个语法比较基本,
3,with语句,这个后面再说,
----------------------------------------------------
母版
为什么使用母版?
每一个页面页头和左侧的菜单都是基本一样的,可以使用母版的方式减少代码量,
可以提取出来,作为复用,作为一个母版,其他的只需要继承母版,来实现,
母版就是很多个页面都共用的部分,
使用的步骤:
1,将公用的提取出来,放入文件中,
2,在base.html中通过定义block,把每一个页面的不同部分区分出来,
3,在具体页面继承模板
4,把内容写在block块中,
5,注意右侧的菜单,选中是深色,如何能实现动态,可以通过对菜单进行判断是否存在该页面的字段为判断,来看是否需要选中,但是这种有问题,如果没有数据就还是选不中,也可以使用代码块的替换方式,但是要在每一个页面都要添加一遍, 所以可以定义多个代码块
没有可以加
有可以判断,是否显示,
所以使用过程中,可以在header部分添加代码块,js部分添加代码块,主体部分添加代码块,都是可以的,
使用母版的注意事项
1,{% extends 'base.html' %} 母版文件一定要引号,并且必须放在第一行,
2,可以定义很多个block,
3,但是记住,母版只有一个母版,没有第二个,
前端的内容还是要学习一下,包含html,css,js,bootstrap,等等,
------------------------------------------------------------
组件
可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方按如下语法导入即可。
{% include 'navbar.html' %}
这个语句分为两种情况
1,如果这个页面有继承母版,就一定要写到块里面,因为每一个块都在母版中有对应的替换位置,但是不写在块内就无法替换,就不会生效了,
2,如果这个页面是独立的,没有继承母版,就可以把这个写入页面代码就可以了,
-------------------------------------------------------------
静态文件
包括css,和js文件,
如果把所有的静态文件的路径写死了,一旦路径发生变化,所有的地方都要改,这是不行的,有什么好办法???
{% load static %}
<link href={% static "bootstrap/css/bootstrap.min.css" %} rel="stylesheet">
标签:python,可以,20191106,母版,视图,django,html,页面 来源: https://www.cnblogs.com/andy0816/p/11803662.html