iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

web 應用開發筆記系列 第 20

[Day 20] 後端大補帖 - Django 連結現有 MySQL Database

  • 分享至 

  • xImage
  •  

之前提過 Django 的專案建立,此篇介紹如何將 Django 連結現有的 MySQL

設定 Django with MySQL

安裝與設定

安裝 pymysql

$ pip install pymysql

設定 setting.py

  • 在Django專案中找到settings.py

  • 在 settings.py 中 import pymysql 套件 (on the top)

import pymysql
pymysql.install_as_MySQLdb()

使用 install_as_MySQLdb 確保 pymysql 連結數據庫時不會報錯

  • 替換DATABASES的內容
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'your DB name',                      
        'USER': 'your user name',                      
        'PASSWORD': 'your password',               
        'HOST': '',                           
        'PORT': '3306',                           
    }
}
  • 設定完之後進行下一步同步資料庫

同步資料庫

再來可以開始同步資料庫,以下的狀況是在已有 mysql table 情況下同步

  • 在專案根目錄底下執行以下指令 ( command line )
  • 執行 python manage.py inspectdb > your app/models.py (範例如下)
$ python manage.py inspectdb > Web_App/models.py

做完之後可以看到 models.py 內已經有資料表的內容

  • 執行 migrate 指令
$ python manage.py migrate

取用資料

在 views.py 中取用 mysql 的資料

from django.shortcuts import render
from Web_App.models import Video
import json

# Create your views here.

def index( request ):

	video_list = list(Video.objects.all().values())

	return render( request, "index.html", locals())

在 index.html 中顯示 Video 表中的 name

<div class = "container">
		<div class="input-group mb-3">
		  <div class="input-group-prepend">
		    <label class="input-group-text" for="inputGroupSelect01">影片選取</label>
		  </div>
		  <select class="custom-select" id="inputGroupSelect01">
		    <option selected>選擇...</option>
		    {% for video in video_list  %}
		    	<option selected>{{ video.name }}</option>
		    {% endfor %}
		  </select>
		</div>
	</div>

上一篇
[Day 19] 資料視覺化實戰篇 - 導覽圖
下一篇
[Day 21] 資料視覺化概念篇 - 系列開始
系列文
web 應用開發筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言