Django默认使用的是Python自带的SQLite3,SQLite3数据库并不适用于大型的项目。除此之外,Django还支持以下几种数据库:
1.PostgreSQL(http://www.postgresql.org/)
2.MySQL(http://www.mysql.com/)
3.Oracle(http://www.oracle.com/)
本文以MySQL为例,介绍MySQL的安装及在Django中的配置。
1.安装MySQL,关于安装步骤自行百度吧。
mysql下载地址
2.MySQL基本操作
连接数据库,打开cmd,输入MySQL -u root -p回车后输入或不输入密码进入MySQL。
- show databases; 查看当前数据库下面的所有库
- user test; 切换到test库
- show tables; 查看test库下面的表
- show global variables like ‘port’; 查看MySQL的端口号
- CREATE DATABASE guest CHARACTER SET utf8; 创建guest数据库
3.安装及使用PyMySQL
如果使用的是python2,那连接数据库时可以使用MySQL-python。目前,django默认使用的也是MySQL-python来驱动mysql数据库。但它支持python2,且在2014年1月之后就不再更新了。
如果使用的时python3,推荐使用PyMySQL驱动,它同时支持python2和python3。
关于PyMySQL的使用,请参考下面的例子,mysql_demo.py.
from pymysql import cursors, connect
# 连接数据库
conn = connect(host = '127.0.0.1',
user='root',
password='123456',
db='guest',
charset='utf8mb4',
cursorclass=cursors.DictCursor)
try:
with conn.cursors() as cursor:
# 创建嘉宾表
sql = 'INSERT INTO sign_guest (realname, phone, email, sign, event_id, create_time)\
VALUES ("tom1", 18800110002, "tom1@email.com", 0,1,NOW())'
# 提交事务
cursor.commit()
with conn.cursor() as cursor:
# 查询添加的嘉宾
sql = 'SELECT realname,phone,email,sign FROM sign_guest WHERE phone=%s'
cursor.execute(sql, ('18800110002',))
result = cursor.fetchone()
print(result)
finally:
conn.close()
- connect(): 建立数据库连接
- cursor(): 获取数据库操作游
- execute(): 执行SQL语句
- commit(): 提交数据库执行
- close(): 关闭数据库连接
4.在Django中配置数据,在../FirstProject/settings.py文件中修改数据库配置即可。
# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# MySQL Database
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'HOST':'127.0.0.1';
'PORT':'3306',
'NAME':'guest',
'USER':'root',
'PASSWORD':'123456',
'OPTIONS':{
'init_command':"SET sql_mode = 'STRICT_TRANS_TABLES'",
}
}
}
配置信息从上到下依次是驱动,主机地址,端口号,数据库,登陆用户名,登录密码。
关于sql_mode的设置,请参考Django文档
5.重新执行数据库同步,使数据库模型重新在MySQL数据库中生成表。在此之前不要忘记先在../FirstProject/_init_.py文件中添加下列代码,否则在执行数据库同步时会报错。
import pymysql
pymysql.install_as_MySQLdb()
6.最后一步重新创建admin后台超级管理员账号(admin/admin123456),之所以要重新创建是因为更换了数据库。创建管理员账号的方式,是cmd进入到MySQL,然后执行python3 manage.py createsuperuser命令,输入用户名和密码之后即可创建。