Skip to content
On this page

Django 專案建立

環境需求

  1. 需安裝 Python。
  2. 建立虛擬環境 venv。
  3. 規劃好資料庫 (例如 : 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/ 看到專案。

startpage

注意:

上述只是搭載好Django基本的架構,千萬不要以為這樣就搭載好,因為後續必須建立應用app,才能讓整個網站產生功能及作用。

研究探討

  1. FBV (function based view) 與 CBV (class-based view),也就是說 FBVfunction函數 來處理 requestCVB則是用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')
    

參考:

  1. WSGI 與 ASGI WSGI (Web Server Geteway Interface) ASGI (Asynchronous Server Geteway Interface)

參考

備註

  1. View 建立流程:
    • 建立處理函式到 views.py
    • 建立子路由到 myapps / urls.py
    • 註冊路由到 urls.py
  2. Templates 建立流程 :
    • 新增 Templates 資料夾。
    • 新增 first.html 檔。
    • 放到 views.py 內。
  3. APP建立
    • 註冊到 settings.pyINSTALLED_APPS 內。
  4. 資料庫建立
    • 建立資料表列別到 myapps / models.py
    • 執行 py manage.py makemigrations members 上傳紀錄
    • 執行 py manage.py migrate 建立資料表