当前位置:首页 » 《随便一记》 » 正文

Django与Mysql数据库的连接_刘小花花的博客

15 人参与  2022年06月02日 17:23  分类 : 《随便一记》  评论

点击全文阅读


Django与Mysql数据库的连接

  • 前言
  • 一、基础配置
    • 1、确保服务器安装了mysql,两条命令都要执行。安装过程中需要输入初始化密码。
    • 2、配置django
      • 2.1 settings.py文件
      • 2.2 插入数据库表格
      • 2.3 文件迁移
  • 二、遇到的一些问题

前言

环境:ubuntu + mysql5.7以上+django

Django与Mysql数据库的连接教程很多且大致差不多,本文主要记录作者在实际操作中的一些问题以及Django ORM的实现原理(原理不深入讲解,只介绍大致含义)

一、基础配置

1、确保服务器安装了mysql,两条命令都要执行。安装过程中需要输入初始化密码。

本文重点介绍django的配置,mysql的默认配置以及开启远程连接可以参考mysql配置相关文章。

// 命令
sudo apt-get install mysql-server
sudo apt-get install mysql-client 

2、配置django

2.1 settings.py文件

1、找到DATABASES,并进行配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#mysql引擎
        'NAME': '数据库名',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '数据库服务器的ip地址,如果在本地可以配成127.0.0.1',
        'POST': 3306,
    }
}

2、在settings.py文件最后加入一行代码

// An highlighted block
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

2.2 插入数据库表格

1、在model.py 函数下插入一个表

// An highlighted block
from django.db import models

# Create your models here.
# 最后会生成一个表,表名为'你的app的名字+Bookinfo'
# 字段可以自己进行定义,后续也可以修改

class Bookinfo(models.Model):
    name = models.CharField(max_length=10)
    nameinfo = models.CharField(max_length=1000)
    feature = models.CharField(max_length=1000)
    livemethod = models.CharField(max_length=1000)
    feednn = models.CharField(max_length=1000)
    feedmethod = models.CharField(max_length=1000)

2、在__init__.py 文件夹下引入mysql包,因为现在虽然在django后端中已经命名了表格,但是还没有引入django所需要的mysql模块。需要在__init__.py中插入:

// An highlighted block
import pymysql
pymysql.install_as_MySQLdb()

2.3 文件迁移

在进行完上面几步之后相当于在我们的后端已经new了一个bookinfo的表格,但是这个表格目前还没有同步到mysql中,因此需要继续执行下面两个命令
1、cd 到manage.py 目录下执行:

// An highlighted block
python manage.py makemigrations
python manage.py migrate

这两句可以理解成有点像git的原理,python manage.py makemigrations这句执行结束后会返回修改的信息,举个例子:

// An highlighted block
    - Create model Bookinfo
    - Delete model Book_03
    - Delete model Catinfo

这是我执行后的输出,可以看到我再models里面删除了两个表格,又新建了一个表格,之后执行第二句,相当于把我的修改的代码,进行git push。
执行结果:

// An highlighted block
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, core, sessions
Running migrations:
  Applying core.0005_auto_20211119_0813... OK

表示我们的更新已经同步到了数据库上。验证一下:

| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| core_bookinfo              | ----->已经生效,其他的是默认生成的表!!!
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session     

二、遇到的一些问题

1、文件迁移一直No changes detected
在进行文件迁移的时候一定要确保app所在的目录下有migrations文件夹,就相当于确定我们的代码是在git的环境下进行修改。并且migrations文件夹下也一定要有__init__文件。之前笔者就是因为不小心删掉了这个文件夹,导致一直更新失败。
如果大家不小心误删了,重新建一个文件夹和空的__init__文件就行。


点击全文阅读


本文链接:http://www.zhangshiyu.com/post/41240.html

文件  执行  配置  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 全书免费雾色靡靡倪雾裴淮聿_雾色靡靡倪雾裴淮聿全书免费
  • 新章速递如果你也爱我是什么小说(厉寒霆江映春)完本阅读无广告(如果你也爱我)
  • 完结文犹若清风梦了云高质量好文列表_完结文犹若清风梦了云高质量好文(晏临渊叶知薇谢执玉)
  • 医生老婆转行杀猪后,我离婚了一口气看完_小说后续在线阅读_无删减免费完结_
  • 因为买了二斤牛肉,我被儿媳逐出家门章节目录_宋川林淼养老完结爽文_小说后续在线阅读_无删减免费完结_
  • 如冷风吹凉月色(许栀夏盛南靳)全书免费_(许栀夏盛南靳)如冷风吹凉月色后续(许栀夏盛南靳)
  • 心动禁令小说(周斐任译)小说结尾+隐藏篇章(心动禁令)畅享阅读
  • 傲娇总裁低调宠小说(傲娇总裁低调宠)(丁千凝肖楚航)完整章节列表_笔趣阁
  • 终是庄周梦了蝶高口碑(南语沈聿珩乔清意)全书免费_(南语沈聿珩乔清意)终是庄周梦了蝶高口碑后续(南语沈聿珩乔清意)
  • 疯批小叔认错白月光,清醒的我杀疯了一口气完结_江寒小叔江南高分神作_小说后续在线阅读_无删减免费完结_
  • 重生未婚妻与我退婚后,傻眼了全文阅读_黎父沈旭沈浪隐藏剧情_小说后续在线阅读_无删减免费完结_
  • 在线阅读(重生八零,娇软美人把糙汉拿下了)温寒烟田政雄:结局+番外看点十足全文+后续

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1