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

跳至導覽 跳至搜尋
增加 2,315 位元組 、 2022年9月21日 (三) 23:32
無編輯摘要
行 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:資訊]]

導覽選單