设为首页 加入收藏

TOP

python 学习笔记(十二)--Django 基本知识点小结(二)
2023-07-23 13:36:48 】 浏览:74
Tags:python 习笔记 十二 --Django
tic
"), ] STATICFILES_STORAGE = "common.storage.ForgivingManifestStaticFilesStorage"

说明:(1)指定访问静态文件时是需要通过/static/xxx或http://127.0.0.1:80/static/xxx.

[xxx表示具体的静态资源位置];

(2)STATICFILES_DIRS ---保存的是静态文件在服务器端的存储位置。

 12.Django中的应用

应用在Django项目中是一个独立的业务模块,可以包含自己的路由、视图、模板、模型。

 (1)创建应用

step 1 用manage.py 中的子命令startapp 创建应用文件夹

python manage.py startapp XXXX

step 2 在settings.py 的INSTALLED_APPS = ()列表中配置安装此应用。

13.分布式路由

Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件可以做请求的分发(分布式请求处理)。具体的请求可以由各自的应用来进行处理。

配置分布式路由

step 1 --主路由中调用include函数

导入的模块

from django.urls import include, path

语法:include('app名字.url 模块名')

作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理。

例如 archery项目中的分布式配置。

urlpatterns = [
    path("admin/", admin.site.urls),
    path("api/", include(("sql_api.urls", "sql_api"), namespace="sql_api")),
    path("", include(("sql.urls", "sql"), namespace="sql")),
]

14 应用下的模板

应用内部可以配置模板目录

(1)应用下手动创建templates文件夹;

(2)settings.py中 开启 应用模板功能,TEMPLATES 配置项中的"APP_DIRS": True 即可。

应用下templates 和外层templates都存在是,django的查找模板规则:

(1)优先查找外层templates目录下的模板;

(2)按# Application definition 中 INSTALLED_APPS 配置下的 应用顺序,逐层查找。

15 什么是模型

模型是一个Python类,它是由django.db.models.Model派生出的子类。

一个模型类代表数据库中的一张数据表。

模型类中每一个类属性都代表数据库中的一个字段。

模型是数据交互的接口,是表示和操作数据库的方法和方式。

16.ORM框架

定义: ORM(Object Relational Mapping)即对象关系映射,它是一种程序技术,它允许你使用类和对象对数据库进行操作,从而避免通过SQL语句操作数据库。

作用:

(1)建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库。

(2)根据设计的模型类生成数据库中的表。

(3)通过简单的配置就可以进行数据库的部署或DB类型的切换。

有点:

(1)只需要面向对象编程,不需要面向数据库编写代码。

对数据库的操作都转化成对类属性和方法的操作;不用编写各种数据库的SQL语句。

(2)实现了数据库模型与数据库的解耦,屏蔽了不同数据库操作上的差异。

不再关注于用的是MySQL、Oracle。。。等数据库的内部细节;通过简单的配置就可以轻松更换数据库,而不需要修改代码。

 缺点:

对于复杂业务,使用成本较高;

根据对象的操作转换成SQL语句,根据查询的结果转换成对象,在映射过程中有性能损失。

17.模型--数据库迁移

迁移是Django同步您对数据库所做的更改(添加字段、删除模型等)到您的数据库模型的方式。

(1)生成迁移文件,执行  python manage.py makemigrations ,将应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中。

(2)执行迁移脚本程序,--执行 python manage.py migrate ,执行迁移程序实现迁移。将每个应用下的makemigrations目录中的中间文件同步回数据库。

18. 模型---字段类型

常见字段类型相关说明补充如下:

字段类型 编程语言 数据库语言 备注
BooleanField() 使用True或False来表示值。

tinyint(1)

在数据库中,使用1或0来表示具体的值。
NullBooleanField()     可以为空的布尔值。
CharField(Field)   varchar() 必须提供max_length参数, max_length表示字符长度
DateField() 表示日期 date

参数:

auto_now:每次保存对象时,自动设置该字段为当前时间(取值:True/False);

auto_now_add:当对象第一次被创建时自动设置当前时间(取值:True/False);

default:设置当前时间(取值:字符串格式时间,如:'2019-10-15');

以上三个参数只能多选一。

DateTimeField() 表示日期和时间 datetime(6)

日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]。

参数同DateField.

DecimalField() 使用小数表示该列的值

使用小数

decimal(x,y)

 

参数:

max_digits,小数总长度【位数总数】,包括小数点后的位数,该值必须大于等于decimal_places;

decimal_places,小数位长度【小数点后的数字数量】。

FloatField() 浮点型 double 编程语言中和数据库中都使用小数表示值。
EmailField() 字符串类型 varchar

Django Admin以及ModelForm中提供验证机制。

编程语言和数据库中使用字符串。

IPAddressField() 字符串类型   Django Admin以及ModelForm中提供验证 IPV4 机制
GenericIPAddressField() 字符串类型  

Django Admin以及ModelForm中提供验证 Ipv4和Ipv6。

参数:

protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6";

unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Web的8种(6+2)元素+常用定位方法 下一篇装饰器第1天

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目