- 一、创建app子应用
- 1.为何要创建app?
- 2.创建子应用
- 3.配置子应用的路由
- 二、ORM 对象关系映射(object relation mapping)
- 1.配置mysql数据库
- 2. 安装 pymysql模块并且创建库
- 3.创建模型
- 4. 数据迁移
- 5.修改数据表名字
- 三、后台站点管理
在django开发中,我们一般使用app进行各个模块的开发。在一个web项目中,比如电商项目,电商项目中有用户管理模块,订单管理模块,商品管理的模块,日志管理等模块放在同一个 urls,views中不方便管理,因此django给我们提供了子应用,将独立的功能进行独立管理,将独立的模块放在同一个app当中,包括该模块的路由,视图,html,静态资源。
2.创建子应用在命令行输入:
activate DjangoPath #保证在虚拟环境中
python manage.py startapp app01 #app01 是子应用的名字
会生成一个app01的目录 创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。在工程配置文settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:
子应用目录名称及其意义
migrations 数据迁移文件,数据库表结构的同步的
admin.py 站点管理
apps.py 配置当前子应用的相关信息
model.py 模型
tests.py 用于开发测试应用
views.py 视图文件
3.配置子应用的路由
如果不配置路由的话,我们这样使用 但是由于后期会有多个模块,配置各个模块的路由方便管理,因此需要配置,步骤如下:
子应用中创建urls.py
主目录中导入include
path('app01/', include('app01.urls'))
Django鼓励开发人员进行相对独立的模块开发,这种开发模式在工作中被称为:解耦合,就是指在开发中将项目看成几个独立的模块进行开发,降低模块之间的耦合性。在这种思路下,django数据开发采用了mvc和mvt设计模式,和ORM机制
特点:
- 将数据库中的表名映射为类名,将字段映射为属性,可以操作类方法,类属性快速操作数据库
- 可以使用我们创建好的模型,帮我们创建表,无需关心具体使用的是那种数据库
settings.py修改配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'stu', ## 库名
'USER': 'root', ## 用户名
'PASSWORD': '123123',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
可以在pycharm中的命令行输入
pip install pymysql
打开mysql窗口先要创建一下表
create database stu charset=utf8;
3.创建模型
在models.py创建模型 django ORM会帮助我们自动创建一个主键
1. 在数据迁移之前,确定配置是否完成
python manage.py check
2.排错
第一个错误 原因:django 模式使用python2 版本的mysql数据库模块,python3 使用的是pymsql模块
解决方法: 第二个错误
- 原因:django默认检测pymysql的版本,修改源码,去掉检测
- 解决办法:删掉或注释
3.数据迁移 ①命令行输入命令
python manage.py makemigrations
②排错
- 原因: python3当中 字符串没有 encode
- 解决方案:将decode改为encode
③执行成功
④同步表结构
python manage.py migrate
数据库生效
再进行数据迁移
1.命令行输入创建超级用户,并输入用户名和邮箱和密码
python manage.py createsuperuser
2.进入后台站点
运行项目,地址加入admin
3.安装模型类 在创建的类中将类名传入admin
4.使用后台管理可以管理数据
5.修改站点管理后台为中文