连接mysql数据库(十)

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命令,输入用户名和密码之后即可创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值