• 手机站
  • 收藏
聚培教育网合作机构 > 潍坊达内教育
潍坊达内教育
400-998-6158
潍坊达内教育育是一家由留学海归创办的高端职业教育培训机构,是中国人才培养平台、人才输送平台。
潍坊达内教育

Python django web学习(三)

python学习网

更新时间:2021-11-02 浏览:186
核心提示:模版 MVT中的T,template3.0拓展 问:模版3D渲染的阶段是在服务端进行的,或是在手机客户端进行的?答:网络服务器。

3.模版

MVT中的T,template

3.0拓展

问:模版3D渲染的阶段是在服务端进行的,或是在手机客户端进行的?

答:网络服务器。

过程:

手机客户端浏览/use_template/,网络服务器启用相应的主视图涵数,开展网站模板的3D渲染,给模版文档传送自变量,将模版文档中的变量值开展更换,获得更换以后的html內容,将更换以后的html內容返还给手机客户端,回到3D渲染以后的整洁的html网页页面,手机客户端仅仅表明。

web网站开发设计的有两种玩法:

1)前后左右端不分离出来:前面见到的结果是由后面开展操纵的。

2)静态页面:后面只回到前面需要的数据信息,对于数据信息如何展现,由前面自身操纵。

3.1模版的功效

3D渲染造成html网页页面內容,开展数据展示

3.2模版的应用

flask中:

render_template('模版文件夹名称',=,.....)

Django中:

1.设定模版文件目录

在项目中建立模版文件目录templates。在settings.py环境变量中改动TEMPLATES配备项的DIRS值:

'DIRS': [os.path.join(BASE_DIR, 'templates')], # 这里改动

2.render(request,'模版文件夹名称',<词典>)

render回到的是一个相应的目标。

render 实际上就是就是下边模版的具体流程的一个缩写封裝。

3.3模版的具体流程(关键把握)

如果我们不愿回到回应目标,仅仅想3D渲染一下网页页面,更换数据信息,那麼我们可以按下边的来。

大家应用建筑模板的具体流程:

1.载入模版:特定应用模版文档,获得模版目标

from django.template import loader

temp = loader.get_template('模版文件夹名称')

2.模版3D渲染:给模版文档传送自变量,将模版文档中的变量值开展更换,获得更换以后的html內容

res_html = temp.render(词典)

3.建立回应目标

return HttpResponse(res_html)

3.4模版英语的语法(掌握)

3.4.1模版自变量

用户标识符务必由英文字母.数据.下横线(不可以以下横线开始)和点构成。

英语的语法如下所示:{{自变量}}

模版自变量能够使python的内建种类,还可以是目标。

Python django web学习(三)

Python django web学习(三)

django中的模版自变量不可以开展计算。

3.4.2模版句子

1)for循环:

Python django web学习(三)

2)if标准:

Python django web学习(三)

3)较为操作符如下所示:

Python django web学习(三)

4)布尔运算符如下所示:

Python django web学习(三)

留意:操作符上下两边不可以紧靠自变量或变量定义,务必有空格符。

3.4.3过滤装置

英语的语法如下所示:

应用管路标记|来运用过滤装置,用以开展测算.变换实际操作,能够运用在自变量.标识中。

假如过滤装置*须 主要参数,则应用灶具:传送主要参数。

自变量|过滤装置:主要参数

例举好多个如下所示:

safe,禁止使用转义,告知模版这一自变量是安全可靠的,能够表述实行

length,长短,回到字符串包含标识符的数量,或目录.元组.词典的原素数量。

default,初始值,假如自变量不会有的时候回到初始值。

data|default:'初始值'

date,日期,用以对日期种类的值开展字符串数组恢复出厂设置,常见的恢复出厂设置标识符如下所示:

Y表明年,文件格式为4位,y表明俩位的年。

m表明月,文件格式为01,02,12等。

d表明日, 文件格式为01,02等。

j表明日,文件格式为1,2等。

H表明时,24进制,h表明12进制的时。

i表明分,为0-59。

s表明秒,为0-59。

value|date:"Y年m月j日 H时i分s秒"

3.4.4注解

1)单行注解英语的语法如下所示:

{#...#}

2)几行注解应用comment标识,英语的语法如下所示:

1{% comment %}

2...

3{% endcomment %}

3.4.5模版承继

模版承继和类的承继含意是一样的,主要是为了能增强编码器重,缓解开发者的劳动量。

父模版

假如发觉在好几个模版中一些內容同样,那么就要把这些內容界定到父模版中。

标识block:用来在父模版中预埋地区,交给子模版添充差异的內容,名称不可以同样。为了更好地更快的易读性,提议给endblock标识写上名称,这一名称与相应的block名称同样。父模版中也能够应用前后文中传送来的数据信息。

1{% block 名字 %}

2预埋地区,能够撰写默认设置內容,还可以沒有默认设置內容

3{% endblock 名字 %}

子模版

标识extends:承继,写在子模版文档的**行。

{% extends "父模版途径"%}

子模板无需添充父模板中的全部预埋地区,假如子模板沒有添充,则应用父模板界定的初始值。

添充父模版中特定名字的预埋地区。

1{% block 名字 %}

2具体添充內容

3{{ block.super }}用以获得父模版中block的內容

4{% endblock 名字 %}

3.4.6Django和Flask模版的差别

1.模版自变量

a)Django应用模版自变量的情况下,不论是词典.目录或元组的原素,都*须应用.不可以应用[],词典是.key,元组和目录是.index字符;这也是和flask有差异的地区。

b)Django中的模版自变量不可以同时开展算术运算

2.模版操纵句子:标准分辨和for循环

a)标准分辨:Django模版中在开展标准分辨情况下,较为运算符两侧需要有空格符

b)for循环:Django模版中的for循环和jinja2模版中for循环比照。

Python django web学习(三)

3.模版过滤装置

a) jinja2模版过滤装置应用:

{{ 模版自变量 | 过滤装置(主要参数...)}}

b) Django中模版过滤装置的应用:

{{ 模版自变量 | 过滤装置:主要参数 }}

留意:Django中过滤装置:号以后只有接受一个主要参数

4.数据库查询

ORM架构:

功效:将实体模型类和数据分析表开展相匹配,根据面向对象编程的方法开展数据库查询的实际操作。

flask中SQLALchemy

Django中内置ORM架构,能够同时开展应用。

4.1数据库查询连接配备

flask中:

SQLALCHEMY_DATABASE_URI = 'mysql://:@:/'

Django中:

1.pip install pymysql

2.setting里边的DATABASES里边实现数据库查询配备

3.初次运作时*须 在新项目同名的的文件目录下._init._.py里边加上几句话

import pymysql导进

pymysql.install_as_MySQLdb()启用方式

sqlite是中小型的数据库查询,用在手机里,默认设置的是它。我们可以选择大家的要求改成mysql。

4.2界定实体模型类

1)flask界定实体模型类:

Python django web学习(三)

2)Django中概念实体模型类

Python django web学习(三)

数据删除的情况下,有一种逻辑性删掉:就是否真真正正的删掉,只是做一个删掉的标识,例如加一个字段名,0表明删掉,1表明没删掉,随后展现的情况下依据标识展现,也做到了删掉的目地。

Django中的id不用界定,默认设置为大家使用了id,是外键约束,而且自提高。id能够应用pk替代(primary key)

界定列名的情况下,不允许应用持续的下横线。

字段名种类

Python django web学习(三)

Python django web学习(三)

选择项

Python django web学习(三)

外键约束

在设定外键约束时,*须 根据on_delete选择项指出主表删掉信息时,针对外键约束引入表数据信息如何处理,在django.db.models中包括了可选择变量定义:

CASCADE 联级,删掉主表数据信息时连接一起删掉外键约束表中数据

PROTECT 维护,根据抛出去ProtectedError出现异常,来阻拦删掉主表中被外键约束运用的数据信息

SET_NULL 设定为NULL,仅在该字段名null=True容许为null时可以用

4.3转移转化成数据分析表

flask中:

安裝拓展flask-migrate

python manage.py db init转化成转移文件夹名称

python manage.py db migrate 转化成转移文档

python manage.py db upgrade 转移

Django中:

不用创建文件夹

1.转化成转移文档

python manage.py makemigrations

2.转移转化成表

python manage.py migrate

mysql数据库查询中:

desc 表名;查询表结构

在大家转移的情况下,Django的子运用会默认设置为大家建立一些表,

4.4演试专用工具应用

4.4.1shell专用工具

Django的manage专用工具带来了shell命令,协助大家配备好当今工程项目的软件环境(如联接好数据库查询等),便于能够立即在终端设备中实行检测python句子。

根据如下所示指令进到shell

python manage.py shell

随后导进大家的实体模型类

from booktest.models import BookInfo, HeroInfo

4.4.2查询MySQL数据库查询日志

查询mysql数据库查询日志能够查询对数据库查询的操作记录。 mysql日志文档默认设置沒有造成,*须 做如下所示配备:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

Python django web学习(三)

把68,69行前边的#除去,随后储存并应用如下所示指令重新启动mysql服务项目。

sudo service mysql restart

应用如下所示指令开启mysql日志文档。

Python django web学习(三)

4.5根据实体模型类和对象开展数据信息实际操作(增删)

4.5.1增加

1.建立实体模型类目标,目标.save()

留意:加上HeroInfo时,能够给hbook取值,还可以立即表格中hbook_id取值

Python django web学习(三)

2.实体模型类.objects.create(...)

Python django web学习培训(三)

4.5.2改动

1. 查看目标->改动目标特性->目标.save()

改动实体模型类目标的特性,随后实行save()方式

1hero = HeroInfo.objects.get(hname='猪八戒')

2hero.hname = '猪悟能'

3hero.save()

2. 实体模型类.objects.filter(...).update(...)

应用实体模型类.objects.filter().update(),会回到受影响的个数

1HeroInfo.objects.filter(hname='沙悟净').update(hname='沙悟净')

4.5.3删掉

1.查看目标->目标.delete()

实体模型类目标delete

1hero = HeroInfo.objects.get(id=13)

2hero.delete()

2.实体模型类.objects.filter(...).delete()

实体模型类.objects.filter().delete()

1HeroInfo.objects.filter(id=14).delete()


更多>同类资讯
更多>相关课程
顶部