Django项目之mysql数据库连接和表的创建

数据库连接

  1. 首先,确保我们已经生成了一个基本的Django项目文件,目录结构如下:
    在这里插入图片描述
    具体搭建流程参考链接:https://blog.csdn.net/David_house/article/details/131188889?spm=1001.2014.3001.5502
  2. 找到项目下的settings文件,打开,修改相关内容
  • 添加应用名称(我这里的应用名称为app,我在最后一行加入了app)
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app'
]
  • 修改数据库连接信息
    我这里用的是mysql数据库, 'NAME’后面是你要用的数据库名称
DATABASES = {'default':{'ENGINE': 'django.db.backends.mysql','NAME': 'dfds','HOST':'127.0.0.1','PORT':3306,'USER':'root','PASSWORD':'123456'}
}
  1. 打开app目录下的init文件,注意不是migrations里面的init文件,添加如下内容:
import pymysql
pymysql.install_as_MySQLdb()

表的创建

  1. 打开models.py文件,添加你要创建的表的信息,比如,我这里要创建三张表,具体内容如下:
# Create your models here.
class Users(models.Model):#前面的变量名会默认生成为表中的列名,如果想单独设置可以通过属性db_column=''#当使用CharField时,一定要通过max_length来设置一下最大长度id=models.AutoField('用户id',primary_key=True)  #primary_key为True时表示该列是主键email=models.CharField('用户邮箱',max_length=50,null=False) #null=False表示不为空password = models.CharField('用户登录密码',max_length=8,null=False)class Meta:db_table='user'  #设置对应的表名class Test(models.Model):sample_id = models.AutoField('数据唯一标识符', primary_key=True)classification = models.IntegerField('分类类别', null=False)features = models.CharField('特征',max_length=1000)#ForeignKey来指定外键,第一个参数是关联的表,第二个参数是表连接的方式u_id = models.ForeignKey(Users, on_delete=models.CASCADE)class Meta:db_table = 'test'class getModel(models.Model):m_id = models.AutoField('模型的唯一标识符', primary_key=True)model = models.CharField('模型文件保存路径',max_length=1000, null=False)sample_id = models.ForeignKey(Test,on_delete=models.CASCADE)class Meta:db_table = 'model'
  1. 打开终端,进入到 manage.py文件所在的目录下
    执行命令python manage.py makemigrations,生成对应模型,执行结果如下:

在这里插入图片描述
3. 执行命令 python manage.py migrate,生成对应的数据表,执行结果如下:
在这里插入图片描述
最后,我们去数据库里查看,发现表格自动生成了:
最后三个表是我们自己设计的,其他的是Django项目运行的时候自己需要的数据表
在这里插入图片描述

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

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

相关文章

基于Tars高并发IM系统的设计与实现-基础篇

基于Tars高并发IM系统的设计与实现–基础篇 作者简介 兰怀玉 毕业于中央民族大学计算机专业 先后供职国内外多家公司软件研发设计岗位,有丰富的软件研发经验。 从事IM领域设计研发十余年,先后领衔多个IM通讯系统设计与研发发,拥有丰富的IM系…

three.js中的点对象(Point)和点材质(PointsMaterial)

一、点对象和点材质基本介绍 1. 点材质(PointsMaterial): 点材质用于渲染点对象,它决定了点的颜色、透明度等属性。 常用属性有: color: 点的颜色,默认为白色。opacity: 点的透明度,默认为1…

Vue工程创建及应用

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…

成为优秀领导者必备的五个能力要素

领导力是现代社会不可或缺的一部分。在企业、政府、学术机构等各个领域中,领导力都是影响组织成功的关键因素之一。而要成为一名优秀的领导者,需要具备一系列重要的能力与素质。 本文将简单介绍领导力的五要素,要进一步学习领导力&#xff0…

七、云尚办公-Activiti入门

云尚办公系统:Activiti入门 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布,并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步!!&am…

selenium三大等待

目录 前言: 一、强制等待:sleep(秒) 二、智能等待:显性等待 三、智能等待:隐形等待 前言: 在Selenium自动化测试中,等待是非常重要的一部分,它能够确保在需要时等待页面或元素的加载完成或…

Grafana嵌入iframe,websoket连接报错400或403(nginx代理)

1、custom.ini配置文件修改allowed_origins* 2、 nginx中增加配置,如下:

网络犯罪分子在新的代理劫持活动中劫持脆弱的SSH服务器

一个活跃的金融活动针对的是脆弱的SSH服务器,以隐蔽地将它们纳入一个代理网络。 "Akamai研究员Allen West在周四的一份报告中说:"这是一个活跃的活动,攻击者利用SSH进行远程访问,运行恶意脚本,隐蔽地将受害…

【AI底层逻辑】——篇章3(下):信息交换信息加密解密信息中的噪声

续:【AI底层逻辑】——篇章3(上):数据、信息与知识&香农信息论&信息熵 目录 三、信息是如何交换的 1、互联网与信息交换 2、哈夫曼和有效编码 四、信息的加密与解密 1、密码学的发展 2、可以被公开的密钥 五、信息…

sql server 触发器往链接服务器同步数据的坑

链接服务器无法启动分布式服务 检查数据库是否勾选了一下按钮,双方都要检查 链接服务器属性,需要检查这些地方是否已经设置为true 该伙伴事务管理器已经禁止了它对远程/网络事务的支持 双方启动MSDTC服务 (1)在windows控制面版–>windows 工具->…

Elasticsearch 集群日志收集搭建

Elasticsearch-7.2.0Logstash-7.2.0Kibana-7.2.0-Filebeat-7.6.0 第一台集群内网ip:10.0.0.223 ES配置文件:/es_data/es/elasticsearch-7.2.0/config/elasticsearch.yml ES启动命令:/es_data/es/elasticsearch-7.2.0/bin/elasticsearch cl…

elasticsearch7.17.3实现按terms传入内容排序,类似mysql中order by filed()的排序方式

现有一个需求,需要在elasticsearch中实现用terms筛选内容,并且按terms传入的内容顺序排列 类型于mysql中order by filed()的排序方式,具体实现如下 目录 一、需求二、整体思路三、es查询语句四、java生成es连接五、java调用es六、最终实现结果…