Django 專案建立
環境需求
- 需安裝 Python。
- 建立虛擬環境 venv。
- 規劃好資料庫 (例如 : MySQL、PostgreSQL ),內建資料庫使用
SQLite
。
安裝虛擬環境
cmd
py -m venv myvenv
myvenv/Scripts/activate
如果要跳開虛擬環境的指令
cmd
deactivate
安裝Django
cmd
pip install django
建立專案
此步驟會自動配置 專案資料夾
及 Django
設定檔案
cmd
django-admin startproject myproject
cmd
myproject/
manage.py (管理專案、資料庫連接與啟動本地伺服器等功能,包含權限操作)
|_myproject/
|_ __init__.py
|_ asgi.py (非同步設定檔)
|_ settings.py (專案設置檔)
|_ urls.py (路由、網址對應檔)
|_ wsgi.py (網站與伺服器間的介面)
題外話
-什麼是 WSGI & ASGI ? (Python 面試題)
執行專案
到了此步驟已經可以執行專案,這裡可以看到,只要執行專案都必須透過 manage.py
檔案。
cmd
py manage.py runserver
執行後就可以使用瀏覽器在 http://127.0.0.1:8000/
看到專案。
注意:
上述只是搭載好Django
基本的架構,千萬不要以為這樣就搭載好,因為後續必須建立應用app,才能讓整個網站產生功能及作用。
研究探討
FBV (function based view) 與 CBV (class-based view),也就是說
FBV
用function函數
來處理request
,CVB
則是用class
來處理。至於在何時使用,網路上有各種說法,其實兩樣都可以運用,並沒有一定強調要在哪個時候使用,不過慣例上,多半小型專案採FBV
。FBV
py# app/urls.py urlpatterns=[ path ('login/', views.login, name="login") ]
py# app/views.py def login(request): if request.method=="POST": name=request.POST.get("name") psd=request.POST.get('password') models.Item.objects.create(name=name, password=psd) return render(request, 'index.html')
CBV需要使用到
as_view()
,然後還需導入主控制檔 views.py
,用dispath
分配不同請求給予的函數。py# app/urls.py urlpatterns=[ path (r'^login/$', views.login.as_view()) ]
py# app/views.py from django.views import View class login(View): def get(self,request,*args,**kwargs): return render(request,'index.html') def post(self,request,*args,**kwargs): name=request.POST.get("name") psd=request.POST.get('password') models.Item.objects.create(name=name, password=psd) return render(request, 'index.html')
參考:
- Class Based Views vs Function Based Views
- Class-based vs Function-based Views
- Day27 : CBV vs. FBV
- Django中的FBV/CBV/GCBV
- Django中的FBV & CBV ——源码阅读(一)【面试必备】
- Django的View(视图)
- Class-Based Views (CBV)
- Class Based vs Function Based Views
- WSGI 與 ASGI WSGI (Web Server Geteway Interface) ASGI (Asynchronous Server Geteway Interface)
參考
備註
- View 建立流程:
- 建立處理函式到
views.py
- 建立子路由到
myapps / urls.py
- 註冊路由到
urls.py
- 建立處理函式到
- Templates 建立流程 :
- 新增
Templates
資料夾。 - 新增
first.html
檔。 - 放到
views.py
內。
- 新增
- APP建立
- 註冊到
settings.py
的INSTALLED_APPS
內。
- 註冊到
- 資料庫建立
- 建立資料表列別到
myapps / models.py
- 執行
py manage.py makemigrations members
上傳紀錄 - 執行
py manage.py migrate
建立資料表
- 建立資料表列別到