Django Unleashed筆記
於 2022年9月21日 (三) 23:32 由 Tankianting(討論 | 貢獻) 所做的修訂
這是一本 Django 的教學書籍。另見:Django筆記。
Part1
主要是寫一個新創(startup)爲主題的部落格。
第一章:starting a new Django project
- server、website、webpage、HTTP request、HTTP response、URL
- scheme://network_location/path?query#fragments
- 靜態網頁是無狀態的(stateless),但是現在網站很多動態的,而分爲前端和後端。
- HTTP request->伺服器計算->HTTP response
- 現在多以框架爲主。
- framework vs library
- "Don't fight the framework"
- MVC 模型
- Model:控制資料的組織和儲存,可能也定義資料特定 (data-specific) 的行爲(models.py)
- View:控制資料如何顯示以及生成給用者看的資訊(html template)
- Controller:Model 和 View 的中介者:顯示用者想要的,並回傳資料。(view.py、urls.py)
- Part 1 要建構的頁面:
- 標籤列表頁
- 新創列表頁
- 文章列表頁
- 增加頁面、書籤的頁面
- 單一標籤、新創、文章的列表頁。
- 建立專案:
django-admin startproject [myblog](或是其他專案名)
產出結果:
... └── myblog ├── manage.py └── myblog ├── asgi.py ├── __init__.py # 讓 myblog 變成一個 Python 套件。 ├── settings.py #設定檔 ├── urls.py # valid url └── wsgi.py # Web Server Gateway Interface,包含開發用伺服器
./manage.py migrate
建立資料庫。./manage.py runserver
啓動測試伺服器。./manage.py runserver 7777
設定埠號。sudo ./manage.py runserver 0.0.0.0:80
設定以port 80對外開放(危險)。
- 一個專案有一個以上的 feature(app),feature 可以視爲一個 package。
- 建立app:
./manage.py startapp organizer
- 結果如下:
- 建立app:
├── myblog │ ├── asgi.py ... └── organizer # app 名稱 ├── admin.py # 連結 app 到 Django Admin 函式庫,要設定,先讀完Ch 5 再跳到 Ch 23 ├── apps.py ├── __init__.py ├── migrations # 使 Django 追蹤專案改變導致的資料庫結構改變 │ └── __init__.py ├── models.py # model ├── tests.py # 單元測試 └── views.py # 處理資料和選取顯示的資料
- 爲了要讓專案知道有這個app,去
myblog/setting.py
加入app的名字:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'organizer', # custom app ]