Django(根据Models中模型类反向生成数据库表)—— python篇

一、数据库的配置

1、 django默认支持 sqlite,mysql, oracle,postgresql数据库。

sqlite:django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3

mysql:引擎名称:django.db.backends.mysql

2、创建数据库文件

首先需要在自己的mysql中创建数据库

2、SQlite配置

这个配置在创建Django项目的时候会默认配置好,如下:

python 复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

3、MySQL配置

这个就需要我们手动配置了,里面必须包括各项属性的设置,具体如下:

python 复制代码
DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',  # 引擎改为mysql

        'NAME': 'Django_ORM',    # 你的数据库名称

        'USER': 'root',   # 你的数据库用户名

        'PASSWORD': 'mysql', # 你的数据库密码

        'HOST': '127.0.0.1', # 你的数据库主机,留空默认为localhost

        'PORT': '3306', #你的数据库端口

    }
}

注意: 自己手动配置数据库,也需要手动修改数据库引擎。将mysql引擎放到项目Django_ORM的默认__init__文件下,也就是在__init__.py文件下加入以下代码:

python 复制代码
import pymysql
pymysql.install_as_MySQLdb()

二、Models数据表的创建

1、原本在mysql中创建表 应该如下

python 复制代码
creat table book(
    name varchar(20),
    price float(4,2),
)

2、在Django中需要用一个类来创建表 ,并且必须继承models.Model

python 复制代码
# 在Django的类中创建表:必须继承Model
class Book(models.Model):
    # 变量名name,类型为models.CharField字符型,最大长度是20
    name = models.CharField(max_length=20)
    # Floatfield为浮点型,IntegerField为整型,DateField为时间类型
    price = models.FloatField()
    put_date = models.DateField()

# 创建另一张表
class Author(models.Model):
    name = models.CharField(max_length=32)

3、执行创建

在配置好数据库、数据库引擎,并且创建完数据表后,就可以开始执行创建了

创建表的终端shell窗口执行命令:

python 复制代码
python manage.py makemigrations

生成数据库内容:

python 复制代码
python manage.py migrate

执行创建后,就可以在migrations文件夹看到创建的数据库文件了:

4、内容写入成功

这样数据库内容就成功写入了:

三、在Pycharm中显示

接下来就可以在pycharm中将数据库显示出来,并且能够可视化操作数据库

首先点击右侧的database:

然后点击左上角的"+"号,再Data Resource,再选MySQL:

设置好账户信息和数据库名称就可以了:

本次分享到此结束,感谢大家的阅读!

相关推荐
mubei-1233 小时前
SpringDAO的用法
java·开发语言·数据库
心灵Haven5 小时前
Centos7 + Mysql8.0
mysql·centos
李昊哲小课5 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
星蓝_starblue5 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
2401_844582957 小时前
工具包:软件架构设计的实用技巧与经验分享
python
RFID固定资产管理系统7 小时前
适配媒体行业的固定资产管理软件有哪些功能与核心优势
大数据·人工智能·python·媒体
三8447 小时前
sqli-labs1-10通关笔记
数据库
SunnyDays10117 小时前
Python 为 PowerPoint 添加动画:进入、退出、动作路径与文本动画(详解)
python·powerpoint·动画·动画效果·文本动画
BullSmall9 小时前
Another Redis Desktop Manager(ARDM)下载指南
数据库·redis·缓存
难以怀瑾9 小时前
pytest.param`与 allure.dynamic.title()全解析
python