1.Django安裝
下載網站:https://www.djangoproject.com/download/
我本地的python版本是2.7.17,所以我下的版本是Django版本1.11,cmd執行如下命令:
pip install Django==1.11
檢驗是否安裝成功:(python命令行執行如下)
>>> import django >>> django.get_version() '1.11'
2.Django創建第一個項目
安裝 Django 之后,您現在應該已經有了可用的管理工具 django-admin。我們可以使用 django-admin 來創建一個項目:
我們可以來看下django-admin 的命令介紹:
C:\Users\Administrator>django-admin Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
1.創建項目
django-admin startproject HelloWorld
創建完成后我們可以查看下項目的目錄結構:
$ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py
目錄說明:
HelloWorld: 項目的容器。
manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 項目進行交互。
HelloWorld/__init__.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。
HelloWorld/settings.py: 該 Django 項目的設置/配置。
HelloWorld/urls.py: 該 Django 項目的 URL 聲明; 一份由 Django 驅動的網站"目錄"。
HelloWorld/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。
接下來我們進入 HelloWorld 目錄輸入以下命令,啟動服務器:
python manage.py runserver 0.0.0.0:8000
瀏覽器訪問測試:
2.試圖和URL配置
在先前創建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 view.py 文件,並輸入代碼:
from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! ")
接着,綁定 URL 與視圖函數。打開 urls.py 文件,刪除原來代碼,將以下代碼復制粘貼到 urls.py 文件中:
from django.conf.urls import url from . import view urlpatterns = [ url(r'^$', view.hello), ]
整個目錄結構如下:
$ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 配置 | |-- urls.pyc | |-- view.py # 添加的視圖文件 | |-- view.pyc # 編譯后的視圖文件 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py
完成后,啟動 Django 開發服務器,並在瀏覽器訪問打開瀏覽器並訪問:
注意:項目中如果代碼有改動,服務器會自動監測代碼的改動並自動重新載入,所以如果你已經啟動了服務器則不需手動重啟。
3.django模板
django.http.HttpResponse() 來輸出 "Hello World!"。該方式將數據與視圖混合在一起,不符合 Django 的 MVC 思想。模板是一個文本,用於分離文檔的表現形式和內容。
HelloWorld 目錄底下創建 templates 目錄並建立 hello.html文件,整個目錄結構如下:
HelloWorld/ |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py | |-- urls.pyc | |-- view.py | |-- view.pyc | |-- wsgi.py | `-- wsgi.pyc |-- manage.py `-- templates `-- hello.html
hello.html 文件代碼如下:
<h1>{{ hello }}</h1>
從模板中我們知道變量使用了雙括號。
接下來我們需要向Django說明模板文件的路徑,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 為 [BASE_DIR+"/templates",],如下所示:
...TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR+"/templates",], # 修改位置 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] ...
我們現在修改 view.py,增加一個新的對象,用於向模板提交數據:
from django.shortcuts import render def hello(request): context = {} context['hello'] = 'Hello World!' return render(request, 'hello.html', context)
可以看到,我們這里使用 render 來替代之前使用的 HttpResponse。render 還使用了一個字典 context 作為參數。
context 字典中元素的鍵值 "hello" 對應了模板中的變量 "{{ hello }}"。
再訪問訪問 http://127.0.0.1:8000/hello,可以看到頁面:
這樣我們就完成了使用模板來輸出數據,從而實現數據與視圖分離。