「Django Unleashed筆記」修訂間的差異

出自Tan Kian-ting的維基
跳至導覽 跳至搜尋
行 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 的修訂

這是書本的筆記或心得,相關資訊:

作者:Andrew Pinkham

書號:ISBN 9780321985071

這是一本 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
    • 結果如下:
├── 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
]