编程语言
首页 > 编程语言> > python-django框架研究_20191106

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