Django 小抄

Steven Wang
6 min readMay 29, 2020

--

一 建立虛擬環境
建立folder mkdir {foldername}
進入folder cd foldername
python -m venv {virtname}

二 解除虛擬環境
conda deactivate

三 啟動虛擬環境
進入cd virtname
進入cd bin
執行source activate

四 安裝django
pip install django

五 檢視虛擬環境已安裝的pip
pip freeze

六 創立django project
django-admin.py startproject {projectname}
進入cd projectname *正確的工作目錄之中會有manage.py

七 run the server (live server on my own computer)
python manage.py runserver
http://127.0.0.1:8000/

八 資料庫init (migrate the database)
python manage.py migrate

migrate之後admin area就可以用了
需先創立superuser帳密
python manage.py createsuperuser完成設立

http://127.0.0.1/admin

九 創立django app
python manage.py startapp {appname}

setting.py to register new app {website} to project
註冊app website給project認識

十 設定url.py
app url.py預設不存在,需要自己手動新增
將project url.py copy to app url.py

將app.urls link to project urls

十一 add Django Webpage
first of first add folder templates in website app
All html file in this templates folder

三步驟 a view /a url /a template file

a view

a url

a template file

十一 base.html完成頁首與頁尾供其他網頁取用concept
網站有相同的頁首與頁尾
base.html完成頁首與頁尾供其他網頁取用

base.html

home.html

十二 django url 格式
html動態連結
有效率因應網址的變更(網址變更還是可以用)

格式 {% url ‘urlname’ %}

urlname from

因為{% url ‘name’ %}與name,下圖網址變更還是可以用(實務上很多時候網址會變更)

十三 web form in html file

十四 csrf_token表單網路安全

十五 form action
method : 用戶向server GET網頁/用戶向server POST表單

十六 POST取得之變數,再傳遞到front end
view.py需要先決定這個request是POST the page or GET the page

取出網頁中的變數answer=request.POST[‘answer’]
再{‘answer’:answer}傳遞到其他地方 (python dict格式)

add網頁 {{ answer }}接這個變數顯示

顯示如下

十七 backend運算 及 前後端傳遞參數

在相關的view裡建

用隱形方式傳遞參數的技巧

十八 html內的判斷式 {% if %} {% endif %}

十九 static dirs 靜態檔案設定

(1)setting.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR,’static’),
]

(2)新增folder static and images

二十 圖片load from static folder

{%load static%}

<img src=”static/images/OO.png”>

二十一 輸入的防錯

(1)沒有輸入

(2)通知

--

--

Steven Wang
Steven Wang

No responses yet