Django--模板继承、web开发Django模型、Django数据库开发思维与ORM

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44863429/article/details/100711017

模板继承

1.创建工程(博客)

在这里插入图片描述

2. 配置

  1. 创建一个views文件

  2. urls。py 中导入views

  3. 创建templates 和static 目录

3. 使用静态模板

  1. 导入html和css,js,images

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

  3. 调用第一个页面

在这里插入图片描述

只有html标签内容,但是没有css,image,js这些静态文件

  1. 修改静态文件的路径

    ctrl + r

    ctrl + f

在这里插入图片描述

  1. 修改a标签地址

在这里插入图片描述

4. 模板继承

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

1. 创建一个base.html

base.html作为父类模板

调用base页面

在这里插入图片描述

提供公共的部分

​ 方法:浏览器 检查 寻找公共的部分

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 修改子类模板

在这里插入图片描述

3. 修改base页面的a标签

在这里插入图片描述

base.html 父类模板
	{% block 标识名字%}
	{%endblock%}
	
子类模板
    {% extends “base.html”%}
    {% block 标识名字%}
    {% endblock %}

模板不存在

在这里插入图片描述

解决思路:

  1. 检查templates目录的位置
  2. 检查配置文件中templates是否正确
  3. 检查视图调用模板文件是否正确

Web开发django模型

在django开发中,要求我们使用app进行数据库的开发

在一个web项目中,比如电商项目,电商项目中有用户管理模块,订单管理模块,商品管理的模块,日志管理等模块放在同一个 urls,views中不方便管理,djangp给我们提供了子应用,将独立的功能进行独立管理,将独立的模块放在同一个app当中,包括该模块的路由,视图,html,静态资源。

1. 创建app子应用

在这里插入图片描述

python manage.py startapp app01 
app01 是子应用的名字

子应用目录说明

在这里插入图片描述

migrations  数据迁移文件,数据库表结构的同步的
admin.py  站点管理
apps.py 配置当前子应用的相关信息
model.py 模型
tests.py 用于开发测试应用
views.py  视图文件

2. 配置子应用 安装子应用

在这里插入图片描述

3. 使用

在这里插入图片描述

4 .配置子应用管理自己的路由

在这里插入图片描述

步骤:

1. 子应用中创建urls.py
2. 主目录中导入include
	path('app01/', include('app01.urls'))

访问:

在这里插入图片描述

Django数据库开发思维与ORM

Django鼓励开发人员进行相对独立的模块开发,这种开发模式在工作中被称为:解耦合,就是指在开发中将项目看成几个独立的模块进行开发,降低模块之间的耦合性。在这种思路下,django数据开发采用了mvc和mvt设计模式,和ORM机制

ORM 对象关系映射
在这里插入图片描述
作用:

  1. 将数据库中的表名映射为类名,将字段映射为属性,可以操作类方法,类属性快速操作数据库
  2. 可以使用我们创建好的模型,帮我们创建表
  3. 无需关心具体使用的是那种数据库

1. 配置数据库

更改数据库为mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'stu',    ## 库名
        'USER': 'root',   ## 用户名
        'PASSWORD': '123123',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

2. 安装 pymysql

pip install pymysql

3. 创建库

create database stu charset=utf8;

4. 编写第一个模型

在这里插入图片描述

数据类型
    
    CharField 字符串类型
    IntegerField 整形
    DecimalField  浮点型
    DateField 日期
    EmailField 邮箱
    TextField  文本类型
    BooleanField 布尔类型

django ORM会帮助我们自动创建一个主键

5. 数据迁移 数据表结构同步

1. 在数据迁移之前,确定配置是否完成

python manage.py check

2.排错

第一个错误

在这里插入图片描述

原因:django 模式使用python2 版本的mysql数据库模块,python3 使用的是pymsql模块

解决方法:

在这里插入图片描述

第二个错误

在这里插入图片描述

原因:django默认检测pymysql的版本,修改源码,去掉检测

解决办法:

在这里插入图片描述

3. 数据迁移

python manage.py makemigrations

在这里插入图片描述

原因: python3当中 字符串没有 decode

解决方案:

在这里插入图片描述

执行成功

在这里插入图片描述

同步表结构
在这里插入图片描述

数据库中

在这里插入图片描述

app01-person表是根据我们写的类模型创建的表,默认名字是 子应用名字-模型名字

数据迁移

python manage.py makemigrations appname     生成一个迁移文件
python manage.py migrate  appname          使用迁移文件,进行表同步

创建表的时候修改默认名字

在这里插入图片描述

在这里插入图片描述

站点管理 admin

在这里插入图片描述

安装模型类

在这里插入图片描述

使用后台增加数据

在这里插入图片描述

修改站点管理后台为中文:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44863429/article/details/100711017