Django框架(四)--模板继承,app子应用,数据库开发,ORM,站点管理

补充:静态文件的另一种使用方法

在这里插入图片描述

一、模板继承

1.创建工程(博客)

在这里插入图片描述

2.配置
  1. 创建一个views文件
  2. urls.py中导入views
  3. 创建templates和static目录,并在settings.py中配置好
3.使用静态模板
  1. 导入html文件和css、js、images静态文件

  2. 编写路由和视图
    在这里插入图片描述

  3. 调用页面
    在这里插入图片描述
    这时只有html标签内容,但是没有css,images,js这些静态文件。

  4. 修改各个html中的静态文件的路径

    Ctrl+r
    在这里插入图片描述

  5. 修改a标签href
    在这里插入图片描述

4.模板继承

在实际开发当中,使用前端开发好的静态页面,页面当中有很多重复的东西,为了能够简单操作、修改,并复用代码,可以使用模板继承解决。

  1. 创建一个base.html

    作为父类模板,尽可能多的提取出多个静态页面共有的块,在可能需要插入其他部分的地方,添加block块占位。
    在这里插入图片描述

  2. 修改子类模板

    继承base.html页面,并在占位块中存放自己独有的内容,其余均可删除。
    在这里插入图片描述

  3. 修改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.使用后台增加数据

在这里插入图片描述
在这里插入图片描述
可以修改站点管理后台为中文
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值