web开发django模型

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

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

1.创建app子应用

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

子应用目录说明

migrations 数据迁移文件,数据库表结构的同步的

admin.py 站点管理

apps.py 配置当前子应用的相关信息

models.py 模型

tests.py 用于开发测试应用

views.py 视图文件

注意:

  子应用中没有路由文件,需要自己创建

2.配置子应用

3.使用

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

步骤:

  1. 子应用中创建urls.py

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

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

访问:

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模块

解决方法:

  • 第二个错误

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

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

解决办法:

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

执行数据迁移操作

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

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

解决方案:

操作成功



2. 同步表结构

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

查看数据库stu

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

修改表的默认名字

6.站点管理

创建超级用户

createsuperuser
设置用户名
设置密码

站点管理

安装模型类



使用后台增加数据

修改站点管理后台为中文

创建app子应用,配置数据库,编写模型,进行数据迁移的更多相关文章

  1. ubuntu 下 mysql数据库的搭建 及 数据迁移

    1.mysql的安装 我是使用apt-get直接安装的 :sudo apt-get install mysql-server sudo apt-get install mysql-client 2.配 ...

  2. Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中

    一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以上命令之后如果端口没有被开放就会 ...

  3. 笔记:EF出现列名 'Discriminator' 无效、类没有加入数据库上下文也被数据迁移生成表

    笔记: EF出现列名 'Discriminator' 无效: 类没有加入数据库上下文也被数据迁移生成表: 出现该问题一般是使用了某个基类继承了实体类: 原因是code first的POCO实体对象的继 ...

  4. CodeFirstMigrations更新数据库结构(EF数据迁移)

    背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的 ...

  5. ES数据库重建索引——Reindex(数据迁移)

    应用背景: 1.当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex. 2.当数据的mapping需要修改,但是大量的数据 ...

  6. Django添加模型无法数据迁移解决方法

    用Django开发一款博客,按照教程一步步写下来,发现当我创建一个模型blogpost的时候,使用数据迁移 python manage.py migrate 提示 Operations to perf ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...

  8. EF简单的CodeFirst示例(自己创建数据库,不使用数据迁移)

    1.新建一个控制台应用程序 2.右键引用--管理NuGet程序包,安装如下几项 3.打开App.config文件,加入如下代码: <connectionStrings>    <ad ...

  9. EF三种数据库操作模型比较

    https://blog.csdn.net/xiongmeiqin/article/details/80196089 EF 中 Code First 的数据迁移以及创建视图 写在前面: EF 中 Co ...

随机推荐

  1. 再识requests

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  2. vim 默认配置

    vim ~/.vimrc 然后输入常用的需要用的命令,然后保存,这个每次启动VIM都会自动配置.当然你也可以在VIM里面按":"之后输入如下命令,但是下次启动之后设置就会丢失了. ...

  3. springboot等javaweb项目将jar包安装(打包)到本地Maven仓库

    在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包 1.打开jar所在文件夹,假设我们要将 taobao-sdk-java-auto_1479188381469-20200121. ...

  4. c++基础之虚函数表指针和虚函数表创建时机

    虚函数表指针 虚函数表指针随对象走,它发生在对象运行期,当对象创建的时候,虚函数表表指针位于该对象所在内存的最前面. 使用虚函数时,虚函数表指针指向虚函数表中的函数地址即可实现多态. 虚函数表 虚函数 ...

  5. 【LeetCode】475. Heaters 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcod ...

  6. 【LeetCode】765. Couples Holding Hands 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/couples- ...

  7. 1235 - Coin Change (IV)

    1235 - Coin Change (IV)    PDF (English) Statistics Forum Time Limit: 1 second(s) Memory Limit: 32 M ...

  8. IDEA 延长使用

    压缩包下载地址:https://i.cnblogs.com/files 1.先以试用的形式进入idea,然后help -> Edit Custom VM Options 2.插入 :-javaa ...

  9. CS5212Capstone|DP转VGA方案设计芯片|CS5212设计资料

    CS5212是台湾CAPSTONE最新开发出一款用于DP转VGA方案设计芯片,其周围器件较少,设计简单,整体BOM成本低,市场性价比较高. CS5212内置MCU是工业标准8051核心单片机处理器.C ...

  10. 高效位运算 __builtin_系列函数

    •int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4. •int __builtin_clz ...