创建app子应用,配置数据库,编写模型,进行数据迁移

时间:2023-03-09 17:15:37
创建app子应用,配置数据库,编写模型,进行数据迁移

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.配置子应用

创建app子应用,配置数据库,编写模型,进行数据迁移

3.使用

创建app子应用,配置数据库,编写模型,进行数据迁移

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

创建app子应用,配置数据库,编写模型,进行数据迁移

步骤:

  1. 子应用中创建urls.py

  2. 主目录的路由文件中 导入include

    path(‘app01/’,include(‘app01.urls’))

访问:

创建app子应用,配置数据库,编写模型,进行数据迁移

django数据库开发思维与ORM

1.创建数据库

create database stu charset=utf8;

2.配置数据库

在主目录的settings.py文件中 配置数据库

DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'stu', ##库名
'USER':'root', ##用户名
'PASSWORD':'999999', ##用户密码
'HOST':'127.0.0.1', ##IP地址
'PORT':'3306', ##端口号
}
}

3.安装pymysql

pip install pymysql

4.编写模型

在子应用的models.py文件中 编写模型

from django.db import models

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()

字段类型

CharField varchar类型,需要指定长度

IntegerField 整型

DecimalField 浮点型,需要指定最大长度和小数点位数

DateField 日期 年-月-日

字段属性

max_length 最大长度

verbose_name 备注,站点管理中用于显示字段为中文

max_digits 浮点型最大长度

decimal_places 小数点位数

5.数据迁移

数据迁移之前的准备工作

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

python manage.py check

2.排错

  • 第一个错误

Error loading MySQLdb module.

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

解决方法:

创建app子应用,配置数据库,编写模型,进行数据迁移

  • 第二个错误

ImproperlyConfigured:mysqlclient 1.3.13 or newer is required ; you have 0.9,3

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

解决办法:

创建app子应用,配置数据库,编写模型,进行数据迁移

将上图中35,36两行代码注释掉

执行数据迁移操作

  1. 生成迁移文件
python mange.py makemigrations  生成一个迁移文件

AttributeError:‘str’ object has no attribute ‘decode’

解决方案:

创建app子应用,配置数据库,编写模型,进行数据迁移

操作成功

创建app子应用,配置数据库,编写模型,进行数据迁移

2. 同步表结构

python mange.py migrate  使用迁移文件,进行表结构的同步

查看数据库stu

创建app子应用,配置数据库,编写模型,进行数据迁移

app-person表是根据我们写的类模型创建的表,默认名字是 子应用名字–模型名字(小写)

修改表的默认名字

创建app子应用,配置数据库,编写模型,进行数据迁移

6.站点管理

创建app子应用,配置数据库,编写模型,进行数据迁移

创建超级用户

createsuperuser
设置用户名
设置密码

站点管理

创建app子应用,配置数据库,编写模型,进行数据迁移

安装模型类

创建app子应用,配置数据库,编写模型,进行数据迁移

使用后台增加数据

创建app子应用,配置数据库,编写模型,进行数据迁移

修改站点管理后台为中文

创建app子应用,配置数据库,编写模型,进行数据迁移