Django 創(chuàng)建第一個項目
本章我們將介紹Django 管理工具及如何使用 Django 來創(chuàng)建項目,第一個項目我們以 HelloWorld 來命令項目。
測試版本說明:
Python 3.6.0
Django 2.1.7
Django 管理工具
安裝 Django 之后,您現(xiàn)在應(yīng)該已經(jīng)有了可用的管理工具?django-admin。我們可以使用?django-admin?來創(chuàng)建一個項目:
我們可以來看下django-admin 的命令介紹:
$ 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
……省略部分……
創(chuàng)建第一個項目
使用 django-admin 來創(chuàng)建 HelloWorld 項目:
django-admin startproject HelloWorld
創(chuàng)建完成后我們可以查看下項目的目錄結(jié)構(gòu):
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|? |-- __init__.py
|? |-- settings.py
|? |-- urls.py
|? `-- wsgi.py
`-- manage.py
目錄說明:
HelloWorld:?項目的容器。
manage.py:?一個實用的命令行工具,可讓你以各種方式與該 Django 項目進(jìn)行交互。
HelloWorld/__init__.py:?一個空文件,告訴 Python 該目錄是一個 Python 包。
HelloWorld/settings.py:?該 Django 項目的設(shè)置/配置。
HelloWorld/urls.py:?該 Django 項目的 URL 聲明; 一份由 Django 驅(qū)動的網(wǎng)站"目錄"。
HelloWorld/wsgi.py:?一個 WSGI 兼容的 Web 服務(wù)器的入口,以便運行你的項目。
接下來我們進(jìn)入 HelloWorld 目錄輸入以下命令,啟動服務(wù)器:
python3 manage.py runserver 0.0.0.0:8000
0.0.0.0 讓其它電腦可連接到開發(fā)服務(wù)器,8000 為端口號。如果不說明,那么端口號默認(rèn)為 8000。
在瀏覽器輸入你服務(wù)器的 ip(這里我們輸入本機 IP 地址:?127.0.0.1:8000) 及端口號,如果正常啟動,輸出結(jié)果如下:

視圖和 URL 配置
在先前創(chuàng)建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 view.py 文件,并輸入代碼:
HelloWorld/HelloWorld/view.py 文件代碼:
from django.http import HttpResponse def hello(request):
? ? return HttpResponse("Hello world ! ")
接著,綁定 URL 與視圖函數(shù)。打開 urls.py 文件,刪除原來代碼,將以下代碼復(fù)制粘貼到 urls.py 文件中:
HelloWorld/HelloWorld/urls.py 文件代碼:
from django.conf.urls import url?
from . import view
urlpatterns = [? ? url(r'^$', view.hello),]
整個目錄結(jié)構(gòu)如下:
$ 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 開發(fā)服務(wù)器,并在瀏覽器訪問打開瀏覽器并訪問:
need-to-insert-img
我們也可以修改以下規(guī)則:
HelloWorld/HelloWorld/urls.py 文件代碼:
from django.urls import path from . import view urlpatterns = [? ? path('hello/', view.hello),]
通過瀏覽器打開?http://127.0.0.1:8000/hello,輸出結(jié)果如下:
need-to-insert-img
注意:項目中如果代碼有改動,服務(wù)器會自動監(jiān)測代碼的改動并自動重新載入,所以如果你已經(jīng)啟動了服務(wù)器則不需手動重啟。
path() 函數(shù)
Django path() 可以接收四個參數(shù),分別是兩個必選參數(shù):route、view 和兩個可選參數(shù):kwargs、name。
語法格式:
path(route, view, kwargs=None, name=None)
route: 字符串,表示 URL 規(guī)則,與之匹配的 URL 會執(zhí)行對應(yīng)的第二個參數(shù) view。
view: 用于執(zhí)行與正則表達(dá)式匹配的 URL 請求。
kwargs: 視圖使用的字典類型的參數(shù)。
name: 用來反向獲取 URL。
Django2. 0中可以使用 re_path() 方法來兼容 1.x 版本中的?url()?方法,一些正則表達(dá)式的規(guī)則也可以通過 re_path() 來實現(xiàn) 。
from django.urls import include, re_path
urlpatterns = [
? ? re_path(r'^index/$', views.index, name='index'),
? ? re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
? ? re_path(r'^weblog/', include('blog.urls')),
? ? ...
]