补充:静态文件的另一种使用方法
一、模板继承
1.创建工程(博客)
2.配置
- 创建一个views文件
- urls.py中导入views
- 创建templates和static目录,并在settings.py中配置好
3.使用静态模板
-
导入html文件和css、js、images静态文件
-
编写路由和视图
-
调用页面
这时只有html标签内容,但是没有css,images,js这些静态文件。 -
修改各个html中的静态文件的路径
Ctrl+r
-
修改a标签href
4.模板继承
在实际开发当中,使用前端开发好的静态页面,页面当中有很多重复的东西,为了能够简单操作、修改,并复用代码,可以使用模板继承解决。
-
创建一个base.html
作为父类模板,尽可能多的提取出多个静态页面共有的块,在可能需要插入其他部分的地方,添加block块占位。
-
修改子类模板
继承base.html页面,并在占位块中存放自己独有的内容,其余均可删除。
-
修改base.html页面的a标签即可
二、Web开发–Django模型
在Django开发中,要求我们使用app进行数据库的开发。
在一个Web项目中,比如电商项目,有用户管理模块,订单管理模块,商品管理模块,日志管理等模块放在同一个urls,views中不方便管理。为此Django给我们提供了子应用,将独立的功能进行独立管理,将独立的模块放在同一个app当中,包括该模块的路由,视图,html,静态资源。
1.创建app子应用
python manage.py startapp app01
app01是子应用的名字
项目目录中会新添如下目录,即app子应用目录
子应用目录说明:
migrations:数据迁移文件,进行数据库表结构的同步
admin.py:站点管理
apps.py:配置当前子应用的相关信息
models.py:模型
tests.py:用于开发测试应用
views.py:视图文件
2.配置子应用,安装子应用
3.使用
4.配置子应用,管理自己的路由
步骤:
1.子应用中创建urls.py
2.在主目录中导入include,载入子应用app01的urls.py路由文件
path(‘app01/’,include(‘app01.urls’))
访问:
三、Django数据库开发思维与ORM
Django鼓励开发人员进行相对独立的模块开发,这种开发模式在工作中被称为:解耦。就是指在开发中将项目看成几个独立的模块进行开发,降低模块之间的耦合性。在这种思路下,Django数据开发采用了MVC和MVT设计模式及ORM机制。
ORM:对象关系映射
作用:
1.将数据库中的表名映射成类名,将字段映射成属性,可以操作类方法、类属性快速操作数据库
2.可以使用我们创建好的模型,帮我们创建表
3.无须关心具体使用的是哪种数据库
1.配置数据库
2.安装pymysql
pip install pymysql
3.创建库
create database stu charset=utf8;
4.编写第一个模型
字段类型:
class Person(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32) # 字符串类型
age = models.IntegerField() # 整型
height = models.DecimalField(max_digits=5,decimal_places=2) # 浮点型
birthday = models.DateField() # 日期
# EmailFeild--邮箱类型
# TextFeild--文本类型
# BooleanFeild--布尔类型
Django ORM会帮我们自动创建一个主键,所以可将id字段注释掉
5.数据迁移
1.在数据迁移之前,确定配置是否完成
python manage.py check
排错
错误1:
原因:
Django默认使用python2版本的mysql数据库模块,python3中使用的是pymysql模块。
解决:
错误2:
原因:
Django默认检测pymysql的版本,修改源码,去掉检测。
解决:
进入这个目录
将这两行注释掉
2.数据迁移
python manage.py makemigrations
排错
python manage.py makemigrations
原因:
python3中字符串没有decode函数,将它改为encode函数。
解决:
进入该目录
将decode改为encode
执行成功:
3.同步表结构
python manage.py migrate
app01_person表是根据我们写的类模型创建的表,默认名字是子应用名_模型名。
总结–数据迁移
python manage.py makemigrations [appname]–生成一个迁移文件
python manage.py migrate [appname]–使用迁移文件,进行表同步
补充:创建表的时候修改默认表名
四、站点管理
1.注册
2.登录
3.安装模型类
4.使用后台增加数据
可以修改站点管理后台为中文