资讯专栏INFORMATION COLUMN

Django中更改默认数据库为mysql

yunhao / 2257人阅读

摘要:中默认使用数据库,今天研究了下如何将它换成常见的数据库。由于项目用得,而没有支持的版本,如果使用版本时,时会报错。

Django中默认使用sqlite3数据库,今天研究了下如何将它换成常见的mysql数据库。

由于项目用得python3,而MySQLdb没有支持python3的版本,如果使用python3.x版本时,pip install MySQLdb时会报错。

后来通过谷歌发现可以使用pymysql替代MySQLdb

1 在项目根目录下的__init__.py文件中加入如下代码:

import pymysql
pymysql.install_as_MySQLdb()

2 使用mysqlclient代替MySQLdb,安装方式为:

pip install mysqlclient

3 更改项目setting.py中对数据库的配置为:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "test",
        "USER": "username",
        "PASSWORD": "passwd",
        "HOST": "localhost",
        "PORT": "3306"
    }
}

4 最后通过python manage.py migrate命令,Django会在数据库中自动创建相应的表

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

5 在创建admin用户时,遇到了如下报错

python manage.py createsuperuser
Superuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.

后来查了一下,是因为使用了git来执行命令,切换到Windows自带的命令行,可以解决该问题!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42744.html

相关文章

  • Django学习——Django的基础3(django的基本操作1)

    摘要:那就是新建一个用户,赋予该用户只能操作该数据库的权限。这是根据安全开发中的最小权限原则规定而来的,能够有效的防止网站被攻击后的代价。 基本操作将用一个简单的实例来穿针引线,将尽量涉及到多的操作方法和软件设计的原理 设计表的结构 我们想要做一个班级管理的程序,我们先去设计一下数据库表的结构。首先我们应该有一下几张表 班级表 学生表 班级表 表名:classes 班级id:id 班级...

    RancherLabs 评论0 收藏0
  • Django 项目配置初体验(一)

    摘要:静态资源路径可以有多个,所以这里使用一个列表进行配置再次进入,完美后记现在只涉及到了项目的配置和一些基础的配置,没有涉及到请求从开始到完成的任何内容。下篇教程将集中进行记录。 前言 推荐使用 virtualenv 创建 python 虚拟环境,防止因为使用 pip 安装依赖到全局引起版本冲突的问题,PyCharm 默认会生成一个 venv 目录并创建虚拟环境,使用 IDE 自带的终端...

    Wildcard 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<