環境要求
下載、安裝 python3
安裝 pipenv(用於創建python的虛擬環境)
pip3 install pipenv
直接上示例
步驟爲:
- 創建並進入目錄
- 用pip3安裝Django
- 激活虛擬環境
- 創建新的Django項目(project)
- 在項目裏創建 pages 程序(app)
- 修改 settings.py
- 運行
創建項目
$ mkdir helloworld
$ cd helloworld
# 激活虛擬環境,此時目錄下多了個Pipfile [注意,我們後續的操作,都是在該虛擬環境中進行的]
$ pipenv shell
# 安裝Django
$ pip3 install django
# 創建項目到當前目錄
$ django-admin startproject helloworld_project ./
現在的目錄結構如下:
helloworld
- Pipfile
- Pipfile.lock
- manage.py
- helloworld_project
- __init__.py
- settings.py
- urls.py
- wsgi.py
運行項目
$ python manage.py runserver
訪問http://127.0.0.1:8000/可看到Django的默認頁面
創建app
一個Django項目裏面往往包含多個app,每個app負責一部分功能。
現在我們來創建一個app
# 創建一個名爲 pages 的app。執行後,會發現當前目錄下多了個pages目錄
$ python manage.py startapp pages
在項目級別的settings.py中註冊我們的app:
# helloworld_project/settings.py
INSTALLED_APPS = [
'pages.apps.PagesConfig', # 新增
......
]
編寫view文件,用於顯示hello world
# pages/views.py
from django.http import HttpResponse
def homePageView(request):
return HttpResponse('Hello, World!')
爲了能讓瀏覽器找到 homePageView,我們還需要編寫urls.py。
請求的導航路徑是這樣的:項目urls.py -> app的urls.py -> 具體的view。
因此我們需要修改完2個urls.py文件纔算完成。
編寫app級別的url,把app接受到的請求導向對應的view函數
在pages目錄下新建urls.py文件,並輸入以下內容。
# pages/urls.py
from django.urls import path
from .views import homePageView
urlpatterns = [
path('', homePageView, name='home')
]
接着,編寫項目級別的url文件,把項目接收到的請求導向對應的app。
# helloworld_project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')),
]
$ python manage.py runserver
現在訪問 http://127.0.0.1:8000/, 可以看到我們的hello world 顯示在頁面上。
目錄結構解析
爲了能自己編寫、修改項目,我們需要明白部分關鍵文件的職責。
settings.py(項目級別)
控制項目的配置,比如,註冊app,設置數據庫等。
urls.py
管理接收、響應的規則。在這裏指明項目允許接收哪些URL,接收後由哪個函數進行處理。
manage.py
用於執行Django的各種指令。比如創建項目、創建app、運行服務等。
views.py
接收請求(request)並返回響應(response)的地方。 可以理解爲是個編寫業務邏輯的地方。
admin.py
Django有個內置的admin程序,該文件就是用於配置admin程序的。
apps.py
配置app自身的文件。
models.py
用於定義數據庫模型,Django會自動爲我們轉換爲數據庫表。
migrations/
跟蹤models.py文件的變化,以保持models.py和數據庫的同步。這個目錄裏的內容,通常不用理會。
修改國內源
如果執行 pip3 install pipenv
或者 'pip3 install django' 慢或者失敗,可以把pip修改爲國內鏡像源。
pip鏡像修改爲國內鏡像
$ mkdir ~/.pip # 如果有.pip目錄就略過這一條。
$ vim ~/.pip/pip.conf
粘貼以下內容[使用的是阿里雲的源]
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com