使用模板继承来实现静态文件的调用完成博客工程 Web开发django模型 Django数据库开发思维与ORM 实现数据迁移 站点管理 admin 子应用的配置 数据迁移报错的解决

一、模板继承

1.创建工程(博客)


在激活的环境下,创建工程



activate DjangoPath
django-admin startproject ArticleBlog

在这里插入图片描述
在这里插入图片描述


2.配置


  1. 创建一个views文件
  2. urls.py 中导入views
  3. 创建templates 和static 目录
    在这里插入图片描述

  1. templates 和static 的配置
    在这里插入图片描述
    在这里插入图片描述

3.使用静态模板


1. 导入html和css,js,images


从文件中直接拉进去
在这里插入图片描述
在这里插入图片描述


2. 写路由和视图


在这里插入图片描述


3. 调用第一个页面


在这里插入图片描述
只有html标签内容,但是没有css,image,js这些静态文件


4. 修改静态文件的路径


快捷键作用
ctrl + r上面的框输入要查找的内容,下面的框输入替换内容,全部替换
ctrl + f查找当前文件的内容
shift +ctrl+f查找工程文件中所有输入内容

在这里插入图片描述
要替换的有img,js,css的路径


5. 修改a标签地址


在这里插入图片描述
要改的有很多,所以用到模板继承来替换


4.模板继承


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


1. 创建一个base.html


base.html作为父类模板

调用base页面
在这里插入图片描述


2. 使用base模板提供公共的部分

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

找到公共的部分用作继承,不同的用占位代替
在这里插入图片描述
删除不同的,用占位代替
在这里插入图片描述
模板中的替换成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3. 修改子类模板


继承父类模板
在这里插入图片描述


4. 修改base页面的a标签(父类模板中修改公共部分调用有错的部分)


在这里插入图片描述


5. 子类模板中继承父类和写独有部分的格式


base.html 父类模板
	{% block 标识名字%}
	{%endblock%}
	
子类模板
    {% extends “base.html”%}
    {% block 标识名字%}
    中间写入不同的部分
    {% endblock %}

二、Web开发django模型


1.创建app子应用的目的


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

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

(例如一个urls中存放过多,使用和查找起来不方便,就把同一类的放在一个子应用中,工程目录里的urls导入include来使子目录的urls可以调用成功)


2.创建app子应用


在激活的虚拟环境中创建app01子应用

activate DjangoPath
python manage.py startapp app01

在这里插入图片描述

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

子应用目录说明
在这里插入图片描述

文件名含义
migrations数据迁移文件,数据库表结构的同步的
admin.py站点管理,django后台自带admin后台管理文件
apps.py配置当前子应用的相关信息
model.py模型定义文件
tests.py用于开发测试应用,项目功能测试文件
views.pyapp的视图文件


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


在这里插入图片描述
在这里插入图片描述


4.使用


在这里插入图片描述
访问:
在这里插入图片描述


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


在这里插入图片描述
步骤:

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

三、Django数据库开发思维与ORM


1.orm的引用


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


2.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浮点型
DateField日期
EmailField邮箱
TextField文本类型
DecimalField浮点型
BooleanField布尔类型

django ORM会帮助我们自动创建一个主键
在这里插入图片描述


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


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

python manage.py check

2.排错

第一个错误
在这里插入图片描述
原因:django 模式使用python2 版本的mysql数据库模块,python3 使用的是pymsql模块

解决方法:
在这里插入图片描述
第二个错误
在这里插入图片描述
原因:django默认检测pymysql的版本,修改源码,去掉检测

解决办法:
在这里插入图片描述


6.数据迁移


① 创建迁移文件

python manage.py makemigrations (创建迁移文件)

在这里插入图片描述
原因: python3当中 字符串没有 decode

解决方案:
在这里插入图片描述
执行成功
在这里插入图片描述
② 同步表结构
在这里插入图片描述
数据库查看
在这里插入图片描述
app01-person表是根据我们写的类模型创建的表,默认名字是 子应用名字-模型名字


7.数据迁移格式


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

写appname是迁移指定的models里面创建的了,不写的话迁移全部的


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


在这里插入图片描述


另一种输入数据迁移代码的方式
在这里插入图片描述
在这里插入图片描述
在里面输入
makemigrations 生成一个迁移文件
migrate 使用迁移文件,进行表同步


五、站点管理 admin


第一步:先在python中创建超级用户(如果没有创建用户的话,有的话忽略)
在这里插入图片描述
输入用户名,邮箱和密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


安装模型类 站点管理的类模型加入class Person


在这里插入图片描述


运行代码,在地址栏
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用后台增加数据,加入数据并保存
在这里插入图片描述
在这里插入图片描述
添加成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值