iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

web 應用開發筆記系列 第 6

[Day 6] 技能前哨站 - Web 後端大補帖(上)

  • 分享至 

  • xImage
  •  

上一篇實作了 todo list 前端的介面,可以進行新增任務的行為,但每次開啟專案時都會從空任務開始,因此我們需要後端資料庫以及讀取資料庫的後端 API 程式來幫助我們進行資料的儲存與提取。

此篇也介紹一個強大的後端框架,使用語言 Python,同時也是 Pyhton 主流框架之一的 Django,我們可利用他來建立一個後端專案並將 DB 設定為 MySQL。

  • 安裝 python & Django: 教學

  • 建立 Django 專案

django-admin startproject [project name]
  • 安裝 pymysql
$ pip install pymysql
  • 在 Django 專案中找到 settings.py
  • 在 settings.py 中 import pymysql 套件
import pymysql
pymysql.install_as_MySQLdb() 

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

將原本 DATABASES 的內容

origin database config

替換成以下程式片段

new database config

  • You can copy from here
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'your DB name',                      
        'USER': 'your user name',                      
        'PASSWORD': 'your password',               
        'HOST': '',                           
        'PORT': '3306',                           
    }
}
  • 再來可以開始同步數據庫,以下的狀況是在已有 mysql table 情況下同步
  • 下圖是簡單的 User table 只包含了一個 name 欄位

db

  • 在專案根目錄底下執行以下指令 ( command line )
$ python manage.py inspectdb > yourApp/models.py

目的是將連接到的 mysql table 內容同步到本地的 models.py 檔案內

  • 使用前 ( models.py )
from django.db import models
  • 使用後 ( models.py )

models py

  • 執行 migrate 指令
$ python manage.py migrate
  • 在 views.py 中取用 mysql 的資料
from django.shortcuts import render
from mysqlApp.models import User

# Create your views here.
def index(request):
	user_list = list(User.objects.all().values())

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

  • 在 index.html 中顯示 User 表中的 name
<body>
	{% for user in user_list %}
	<p> {{user.name}} </p>
	{% endfor %}
</body>
  • run server 並指定 port
$ python manage.py runserver 0.0.0.0:2222
  • 啟動後即可看到結果

上一篇
[Day 5] 技能前哨站 - Web 前端大補帖 (下)
下一篇
[Day 7] 技能前哨站 - Web 後端大補帖(中)
系列文
web 應用開發筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言