Django1-配置MySQL數據庫

你們好,我是言淦,我今天帶來的文章是《Django1-配置MySQL數據庫》,但願能給大家帶來幫助!python

環境: Django 2.2.1 + Python 3.6.7mysql

Dj支持PostgreSQL, MySQL, Oracle 和 SQLite 等數據庫,如今以MySQL來配置舉例。sql

1.安裝數據庫驅動

文檔說到, Dj要想與其餘數據庫鏈接,一是要安裝數據庫API驅動,二是要有一個適配器,讓ORM框架和數據庫API驅動二者互相轉化。shell

數據庫API驅動提到的有兩種,一是 mysqlclient(1.3.13及以上),這是推薦的方式,由於Dj已經自帶了mysqlclient的適配器; 二是MySQL Connector/Python, 這種方式須要使用本身的適配器。數據庫

pip install mysqlclient==1.3.14
複製代碼

2.在settings.py設置變量

DEFAULT_USER = 'root'
DEFAULT_HOST = '127.0.0.1'
DEFAULT_PORT = '3306'
DEFAULT_PSW = 'root'
DATABASES = {
    'default': {
         # Dj自帶的適配器
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',  # 數據庫名
        'USER': DEFAULT_USER,
        'PASSWORD': DEFAULT_PSW,
        'HOST': DEFAULT_HOST,
        'PORT': DEFAULT_PORT,
    }
}

複製代碼

3.建立一個應用

$ python manage.py startapp sqltestdjango

4.建立表

mysql> describe stu_grade;
+---------+---------+------+-----+---------+-------+
| Field   | Type    | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| stu_id  | int(11) | NO   | PRI | NULL    |       |
| chinese | int(11) | YES  |     | NULL    |       |
| math    | int(11) | YES  |     | NULL    |       |
| en      | int(11) | YES  |     | NULL    |       |
+---------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)

複製代碼

5.編寫Model

from django.db import models

class StuGrade(models.Model):
    stu_id = models.IntegerField(primary_key=True)
    chinese = models.IntegerField()
    math = models.IntegerField()
    en = models.IntegerField()

    class Meta:
        db_table = 'stu_grade'

複製代碼

6.編寫視圖函數(sqltest/views.py)

import json
from django.http import HttpResponse
from sqltest.models import StuGrade

def sql_test_index(request):
    data = StuGrade.objects.all()
    resp = {}
    for d in data:
        resp.update({'stu_id': d.stu_id, 'chinese': d.chinese, 'math': d.math})
    return HttpResponse(json.dumps(resp))
複製代碼

7.配置URL

from django.conf.urls import url
from sqltest import views

urlpatterns = [
    url(r'^sqltest/', views.sql_test_index)
]
複製代碼

8.再次配置settings

INSTALLED_APPS = [
    'django.contrib.admin',
    ...
    # 你本身的應用
    'sqltest.apps.SqltestConfig'
]
複製代碼

9.啓動

$ python manage.py runserverjson

注: 若是打算使用Dj的manage.py migrate 命令爲您的模型自動建立數據庫表(在首次安裝Django並建立項目以後),您須要確保Django有權在您正在使用的數據庫中建立和更改表。bash

參考

docs.djangoproject.com/zh-hans/2.2…app

相關文章
相關標籤/搜索