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项目的时候会默认配置好,如下:

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

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

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文件下加入以下代码:

import pymysql
pymysql.install_as_MySQLdb()

 

二、Models数据表的创建
1、原本在mysql中创建表 应该如下

creat table book(name varchar(20),price float(4,2),
)

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

# 在Django的类中创建表:必须继承Model
class Book(models.Model):# 变量名name,类型为models.CharField字符型,最大长度是20name = 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 manage.py makemigrations

生成数据库内容:

python manage.py migrate

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

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

 


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

首先点击右侧的database: 

 

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

 

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

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决Transformer根本缺陷,所有大模型都能获得巨大改进

即使最强大的 LLM 也难以通过 token 索引来关注句子等概念,现在有办法了。 最近两天,马斯克和 LeCun 的口水战妥妥成为大家的看点。这两位 AI 圈的名人你来我往,在推特(现为 X)上相互拆对方台。 LeCun 在宣传自家最新论…

leetcode 动态规划(基础版)单词拆分

题目: 题解: 一种可行的dp做法是基于完全背包问题,将s看成是一个背包,wordDict看作是物品,然后往s中放入物品判断最终是否可以变为给定的s即可。这道题和上一题都用到了在dp如何枚举连续子串和状态表示:枚…

【C++】C++拷贝构造引发的无限递归问题及其解决方法

了解C拷贝构造引发的无限递归问题及其解决方法 在C中,拷贝构造函数用于创建一个对象的副本。正确使用拷贝构造函数非常重要,否则可能会引发无限递归问题,导致程序崩溃。 什么是拷贝构造函数? 拷贝构造函数是一种特殊的构造函数…

Golang 百题(实战快速掌握语法)_2

返回集合中满足指定条件的最后一个元素 本实验将实现判断给定集合中的元素是否符合,并返回符合的最后一个元素。 知识点 forfmt.Error 适合人群 本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。 许可证 内容…

潮玩手办盲盒前端项目模版的技术探索与应用案例

一、引言 在数字化时代,随着消费者对个性化和艺术化产品的需求日益增长,潮玩手办和盲盒市场逐渐崭露头角。为了满足这一市场需求,前端技术团队需要构建一个功能丰富、用户友好的在线平台。本文旨在探讨潮玩手办盲盒前端项目模版的技术实现&a…

MySQL入门学习-MySQL日志.查询日志

MySQL 日志包括错误日志、通用查询日志、二进制日志、中继日志、慢查询日志等,以下是关于查询日志的介绍: 一、概念: 查询日志记录了客户端连接 MySQL 后执行的所有语句,包括执行失败的语句。 二、特点: - 记录详细…

Postman接口工具实战

为了更好地展示Postman接口测试的实战过程,我将以一个简单的实战示例来说明如何使用Postman完成一个API的测试。假设我们要测试一个假想的天气查询API,该API允许用户通过城市名查询天气情况。我们将执行以下步骤: 1. 准备工作 确保已经安装…

FuTalk设计周刊-Vol.025

🔥🔥AI漫谈 热点捕手🔥🔥 1、耗时半年,实地调研!泣血2万字,破除你的人工智能焦虑《2023最全AI商业落地调研报告》 链接https://www.bilibili.com/video/BV1YB4y1f7GE?share_sourcecopy_web &…

Vue3路由守卫的理解

官网:导航守卫 | Vue Router 目录 1.路由类型 1.1导航守卫 1.2路由独享 1.3组件内守卫 2.路由元信息 1.路由类型 1.1导航守卫 全局 :所有路由都会触发 router.beforeEach((to,from,next)>{}) router.afterEach((to,form,next)>{}) 1.2路由独享 路由表中的组件 be…

计算机公共课面试常见问题:线性代数篇

目录 1. 特征向量和特征值代表什么含义? 2. 矩阵的秩是什么?满秩代表什么?不满秩呢? 3. 奇异值分解是什么? …

2024上海初中生古诗文大会倒计时4个多月:真题示例和独家解析

现在距离2024年初中生古诗文大会还有4个多月时间,我们继续来看10道选择题真题和详细解析,以下题目截取自我独家制作的在线真题集,都是来自于历届真题,去重、合并后,每道题都有参考答案和解析。 为帮助孩子自测和练习&…

广度优先遍历解决迷宫问题

学习贺利坚老师课程 数据结构例程——迷宫问题(用队列)_数据结构用队列求解迷宫问题-CSDN博客 本人详细解析博客 广度优先遍历解决迷宫问题_迷宫求解c语言深度广度遍历-CSDN博客 版本更新日志 V1.0: 模仿详细解析博客, 基础上, 命名优化, 规范书写, 加上…

改变AI历史的Transformer是如何帮助LLM大模型工作的?看图解密Transformer原理,看不懂算我输!

在过去的几年里,大型语言模型(LLM)的出现,为长达数十年的智能机器构建的探索中带来了巨大的飞跃。 这项基于试图模拟人类大脑的研究技术,也在近几年催生了一个新领域——Generative AI 生成式人工智能,简单理解就是可以 通过模仿…

llama-3 本地化部署实验

国产大模型的API 有限,编写langchain 应用问题很多。使用openai 总是遇到网络问题,尝试使用ollama在本地运行llama-3。结果异常简单。效果不错。llama-3 的推理能力感觉比openai 的GPT-3.5 好。 Ollama 下载 官网:https://ollama.com/downl…

基于GYM环境的DQN简单实现

1. Gym的安装 两种安装方式: https://zhuanlan.zhihu.com/p/483132488 注意:Gym版本太新了,有些APIs不兼容,可以考虑低版本的Gym pip install gym0.19.0 2. 基于CartPole-v0项目 参考: DQN代码逐行详解-CSDN博…

武汉凯迪正大—漆包圆线软化击穿试验仪 漆包线检测仪器

产品功能 武汉凯迪正大电气有限公司生产KDZD-JC软化击穿试验仪用于检测3.00mm及以下漆包线在热状态下漆膜软化后的绝缘性能,根据设定的预热温度、试验时间、仪器自动完成对试样的预加热、加负荷、加试验电压,达到试验时间或试样被击穿时即卸负荷&#x…

基于ARM的通用的Qt移植思路

文章目录 实验环境介绍一、确认Qt版本二、确认交叉编译工具链三、配置Qt3.1、修改qmake.conf3.2、创建autoConfig.sh配置文件 四、编译安装Qt五、移植Qt安装目录六、配置Qt creator6.1、配置qmake6.2、配置GCC编译器6.3、配置G编译器6.4、配置编译器套件6.5、创建应用 七、总结…

【Linux杂货铺】Linux学习之路:期末总结篇1

第一章 什么是Linux? Linux 是 UNIX 操作系统的一个克隆;它由林纳斯 本纳第克特 托瓦兹从零开始编写,并在网络上众多松散的黑客团队的帮助下得以发展和完善;它遵从可移植操作系统接口(POSIX)标准和单一 UNIX 规范…

PLC数据采集案例

--------天津三石峰科技案例分享 项目介绍 项目背景 本项目为天津某钢铁集团下数字化改造项目,主要解决天津大型钢厂加氢站数字化改造过程中遇到的数据采集需求。项目难点PLC已经在运行了,需要采集里面数据,不修改程序,不影响P…

智能农业技术:物联网、无人机与机器人引领的绿色革命

在这个信息化与智能化并行的时代,农业——这个最古老的人类产业,正经历一场前所未有的科技变革。物联网(IoT)、无人机(UAV)和机器人技术的深度融合,正逐步构建起一个高效、精准、可持续的现代农…