Django 学习日记 - Database Settings - step6

1 概述

1.1 简介

django默认支持sqlite、mysql、oracle、postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持。具体详见Django databases官网
sqlite:django默认使用sqlite的数据库,默认自带sqlite的数据库驱动,引擎名称是django.db.backends.sqlite3
mysql:引擎名称是django.db.backends.mysql

1.2 常用的mysql驱动程序库

MySQLdb(mysql-python)(支持python2)
mysqlclient(支持python3)
MySQL Connector/Python
PyMySQL(纯python的mysql驱动) (支持pip安装)

2 演示pymysql的使用

# 1.安装pymysql
pip install pymysql

# 2.修改配置文件【settings.py】
DATABASES = {  ### 默认情况下使用的是sqlite3的数据库
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

DATABASES = {  ### 改为mysql的数据库
    'default': {
        'ENGINE': 'django.db.backends.mysql’,  
        'NAME': 'hello_django_db',  ### 数据库名字
        'USER':'root',  ### 链接mysql数据库的用户名
        'PASSWORD':'123456’, ### 连接mysql数据库的密码
        #'HOST':'',  ### 指定host
        #'PORT':'',  ### 指定port
    }
}

# 3.链接数据库并创建数据库
mysql -uroot -p123456
mysql> CREATE DATABASE IF NOT EXISTS `hello_django_db` DEFAULT CHARACTER SET 'UTF8';
Query OK, 1 row affected (0.00 sec)

# 4. 在工程目录的【__init__.py】增加代码,django默认的是python_mysql的库,所以高改成pymysql
import pymysql
pymysql.install_as_MySQLdb()

# 5.同步一下数据库
(maizi_env) /Users/apple:718$python3 manage.py makemigrations
No changes detected
(maizi_env) /Users/apple:720$python3 manage.py migrate
Operations to perform:
  Apply all migrations: contenttypes, admin, auth, sessions
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... 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 sessions.0001_initial... OK
    原文作者:Spareribs
    原文地址: https://www.jianshu.com/p/a6041baa00ca
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞