Django 连接Mysql的方法及常见问题

来源:互联网 发布:舒柏奇犬 知乎 编辑:程序博客网 时间:2024/05/16 00:26

Django默认使用sqlite3数据库,想要使用Mysql数据库需要修改settings文件中的默认配置。

Django的默认连接sqlite3配置:

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

Django自带的有sqlite3数据库,使用sqlite3数据库不需要安装,使用时会直接生成一个数据文件

Django连接mysql的配置:

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'science_crawler',        'USER':'root',        'PASSWORD':'root',        'HOST':'127.0.0.1',        'PORT':'3306',    }}   
配置参数的含义:

ENGINE : 指定数据库驱动,不同的数据库这个字段不同。下面是常见的集中数据库的ENGINE的写法:

django.db.backends.postgresql  # PostgreSQL  django.db.backends.mysql       # mysql  django.db.backends.sqlite3     # sqlite  django.db.backends.oracle      # oracle  
NAME: 指定的数据库名,如果是sqlite的话,就需要填数据库文件的绝对位置
USER: 数据库登录的用户名,mysql一般都是root
PASSWORD:登录数据库的密码,必须是USER用户所对应的密码
HOST: 由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1
PORT:数据库服务器端口,mysql默认为3306
HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的

数据库驱动:

Django连接mysql需要安装连接mysql的驱动,我安装的是pymysql,注意就算你的是python3要安装pymysql,而不是pymql3,pymql3是pymql的一个旧的分支。安装pymysql使用pip包管理工具安装即可。安装命令如下:

pip install pymysql
使用测试:

进入使用Django创建的项目,使用如下命令运行应用:

python manage.py runserver

然后可以使用如下命令,进入Django提供的应用交互shell

python manage.py shell

在shell中输入如下代码:

from django.db import connection  cursor = connection.cursor() 

如果没有出现错误则表示连接成功。

ImportError: cannot import name 'Thing2Literal' 异常的解决方法:

该异常一般是由你安装mysql驱动程序是铺pymysql3而不是pymysql所导致的。一般而言分别使用如下命令卸载pymysql3,并安装pymysql就能解决

pip uninstall pymysql3pip install pymsql


0 0
原创粉丝点击