「Django Unleashed筆記」修訂間的差異
跳至導覽
跳至搜尋
Tankianting(討論 | 貢獻) |
Tankianting(討論 | 貢獻) |
||
行 2: | 行 2: | ||
{{Book|Andrew Pinkham|9780321985071}} | {{Book|Andrew Pinkham|9780321985071}} | ||
這是一本 Django | 這是一本 Django 的教學書籍。另見:[[Django筆記]]。 | ||
==第一章:starting a new Django project== | ==Part1== | ||
主要是寫一個新創(startup)爲主題的部落格。 | |||
===第一章:starting a new Django project=== | |||
* server、website、webpage、HTTP request、HTTP response、URL | * server、website、webpage、HTTP request、HTTP response、URL | ||
行 13: | 行 16: | ||
* framework vs library | * framework vs library | ||
* "Don't fight the framework" | * "Don't fight the framework" | ||
* MVC 模型 | |||
** Model:控制資料的組織和儲存,可能也定義資料特定 (data-specific) 的行爲(models.py) | |||
** View:控制資料如何顯示以及生成給用者看的資訊(html template) | |||
** Controller:Model 和 View 的中介者:顯示用者想要的,並回傳資料。(view.py、urls.py) | |||
* Part 1 要建構的頁面: | |||
** 標籤列表頁 | |||
** 新創列表頁 | |||
** 文章列表頁 | |||
** 增加頁面、書籤的頁面 | |||
** 單一標籤、新創、文章的列表頁。 | |||
* 建立專案:<code>django-admin startproject [myblog](或是其他專案名)</code> | |||
產出結果: | |||
<pre> | |||
... | |||
└── myblog | |||
├── manage.py | |||
└── myblog | |||
├── asgi.py | |||
├── __init__.py # 讓 myblog 變成一個 Python 套件。 | |||
├── settings.py #設定檔 | |||
├── urls.py # valid url | |||
└── wsgi.py # Web Server Gateway Interface,包含開發用伺服器 | |||
</pre> | |||
* <code>./manage.py migrate</code>建立資料庫。 | |||
* <code>./manage.py runserver</code>啓動測試伺服器。 | |||
** <code>./manage.py runserver 7777</code>設定埠號。 | |||
**<code>sudo ./manage.py runserver 0.0.0.0:80</code>設定以port 80對外開放(危險)。 | |||
* 一個專案有一個以上的 feature(app),feature 可以視爲一個 package。 | |||
** 建立app: <code>./manage.py startapp organizer</code> | |||
** 結果如下: | |||
<pre> | |||
├── 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 # 處理資料和選取顯示的資料 | |||
</pre> | |||
* 爲了要讓專案知道有這個app,去<code>myblog/setting.py</code>加入app的名字: | |||
<pre> | |||
INSTALLED_APPS = [ | |||
'django.contrib.admin', | |||
'django.contrib.auth', | |||
'django.contrib.contenttypes', | |||
'django.contrib.sessions', | |||
'django.contrib.messages', | |||
'django.contrib.staticfiles', | |||
'organizer', # custom app | |||
]</pre> | |||
[[category:資訊]] | [[category:資訊]] |
於 2022年9月21日 (三) 23:32 的修訂
這是一本 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 ]