Django框架之ORM对表结构操作
ORM的优点:(1)简单,不用自己写SQL语句
(2)开发效率高
ORM的缺点:对于不同的人写的代码,执行效率有差别
ORM的对应关系:
类 ----------》 数据表
对象-----------》数据行
属性-----------》字段
ORM能做的事:
(1)操作数据表 --》创建表/删除表/修改表
(2)操作数据行 --》数据的增删查改
但是ORM不能创建数据库,需要自己动手创建数据库
使用Django中的ORM详细步骤:
1.手动创建数据库
2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库)
3.Django框架中用pymysql代替默认的MySQLDB连接MySQL数据库
4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model
5.执行两个命令
(1)python3 manage.py makemigrations
(2)python3 manage.py migrate
具体实现如下:
1.手动创建数据库

2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库)
在项目同名文件夹中的settings.py文件中找"DATABASES"一个变量,配置如下:
# 数据库相关配置
DATABASES = {
'default': {
# 连接数据库类型
'ENGINE': 'django.db.backends.mysql',
# 连接数据库地址
'HOST':'127.0.0.1',
# 端口
'PORT':3306,
# 数据库名称
'NAME':'oldboy',
# 用户
'USER':'root',
# 密码
'PASSWORD':'',
}
}
3.Django框架中用pymysql代替默认的MySQLDB连接MySQL数据库
在项目同名文件夹的__init__.py中添加如下:
import pymysql
# 告诉Django用pymysql来代替默认的MySQLDB,因为Mysqldb是支持python2,不支持python3
pymysql.install_as_MySQLdb()
4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model
ORM相关的只能写在这个文件里,写到别的文件里Django找不到
from django.db import models # Create your models here. class UserInfo(models.Model):
id=models.AutoField(primary_key=True) # 创建一个自增的主键字段
name=models.CharField(null=False,max_length=20) # 创建一个varchar类型的不能为空的字段,其中最大长度必须设置
5.执行两个命令
(1)python manage.py makemigrations

(2)python manage.py migrate

数据库中创建表的结果如下:

命令1:python manage.py makemigrations 将models.py里面的改动记录到对应模块里的migrations文件夹下面,例如:app02/migrations下
命令2:python manage.py migrate 把改动翻译成SQL语句去数据库执行

通过以上步骤,实现了通过ORM对表的创建,如果修改表结构的话,将对应表的类进行修改,重新运行两个命令即可。
Django框架之ORM对表结构操作的更多相关文章
- Django框架06 /orm多表操作
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...
- Django框架05 /orm单表操作
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...
- django框架基础-ORM跨表操作-长期维护
############### 一对一跨表查询 ################ import os if __name__ == '__main__': os.environ.setde ...
- django框架基础-ORM单表操作-长期维护
############### 单表操作-添加数据 ################ import os if __name__ == '__main__': os.environ.set ...
- Django框架之ORM的相关操作(一)
一.一般操作 from django.db import models import datetime # Create your models here. class Author(models.M ...
- Django框架之ORM的相关操作之分页(六)
分页是每个项目必不可少要写的一个功能,该篇文章就将记录一下使用ORM写分页的过程. 假设我们的数据库里面需要显示一些数据,而这个表中的数据大约有几千条数据,那么我们不可能将所有的数据都显示出来,那么就 ...
- Django框架之ORM的相关操作之多对多三种方式(五)
在之前的博客中已经讲述了使用ORM的多对多关系表,现在进行总结一下: 1.ORM自动帮助我们创建第三张表 2.手动创建第三张表,第三张表使用ForeignKey指向其他的两张表关联起来 3.手动创建第 ...
- Django框架之ORM的相关操作之一对一关系(四)
ORM中一对一在当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,那么就把不常用的字段单独拿出来做成一张表,然后通过一对一进行关联起来.举个例子:在我们登录某个账户的时候,一般会显示 ...
- Django框架之ORM的相关操作(二)
模型类: class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max ...
随机推荐
- MODBUS TCP/IP协议规范详细介绍
1.该规范的发展概况 原始版本1997年9月3日作为公共评论的草案. 再版1999年3月29日,即修订版1.0. ...
- mysql(5):主从复制和分库分表
主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读 ...
- wireshark抓pc上的包
简介:wirkshark是全世界最广泛的网络封包分析软件之一. 软件用途: 网络管理员:我用它检测网络问题, 网络安全工程师:我用它检查资讯安全相关问题, 开发者:我用它为新的通讯协定除错, 普通使用 ...
- 2分钟就能学会的【Google/百度搜索大法】了解一下?
之前我在知乎回答了「日常生活中有哪些十分钟就能学会并可以终生受用的技能」,现在也整理分享给公众号的朋友们. 作为一个入坑8年国际贸易的老阿姨,真心推荐[google搜索大法](同样适用于百度). 2分 ...
- GoAhead WebServer 架构
https://blog.csdn.net/jungsagacity/article/details/7307012
- c#显示行号设置方法
工具→选项→文本编辑器→c#→常规→显示→勾选行号 反之取消即可.
- 简单docker示例
创建spring boot工程 工程目录 Controller.java 类说明 主要是接收界面请求,直接返回传入的参数 在启动工程,查看工程运行效果 右键SampleApplication.java ...
- python中的循环结构等相关知识
==分支结构== 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会 ...
- element-ui里el-form的lable颜色怎么修改?
就是把style改写成全局的,不要scoped(注意class,id的唯一,不要影响了整体布局) 链接:https://segmentfault.com/q/1010000017251094
- 使用pip安装速度慢问题的解决
参考博客:https://blog.csdn.net/u011580175/article/details/82292424 解决方案所以,在使用pip时,可以指定使用国内的下载源这样下载速度会快很多 ...