首先檢查Django是否成功安裝, 在shell prompt 輸入$ python -m django --version
, 如果已經(jīng)成功安裝,則顯示版本鞠绰,沒有則
建立民意調(diào)查網(wǎng)站并投票:(project-app)
(A public site that lets people view polls and vote in them.)
1.$django-admin startproject mysite
在當(dāng)前目錄下建立了 mysite 目錄——項(xiàng)目容器。
此處應(yīng)注意避免使用django或者python內(nèi)置包文件的名稱,如“django”捶索,“test”。創(chuàng)建成功后可使用 ls
或tree
查看文件目錄灰瞻。
- 文件說明:
mysite/
外層根目錄:項(xiàng)目容器腥例,名字不重要,由創(chuàng)建人命名酝润。
mysite/manage.py
: 使得創(chuàng)建人與 Django project 互動(dòng)的文件燎竖,參考document。
mysite/mysite/
內(nèi)層目錄是項(xiàng)目的Python package要销,創(chuàng)建人需要向py文件內(nèi)添加各種python包(e.g.mysite.urls
).
mysite/mysite/__init__.py
: 一個(gè)空文件构回,負(fù)責(zé)告訴 Python 這個(gè)目錄是一個(gè)python package。
mysite/mysite/settings.py
: Django project的設(shè)置/構(gòu)造疏咐。 settings .
mysite/mysite/urls.py
: Django project 的 URL 聲明(declarations); 一個(gè)網(wǎng)頁內(nèi)容的 url tabel URL dispatcher纤掸。
mysite/mysite/asgi.py
: 使得ASGI兼容服務(wù)器運(yùn)行所創(chuàng)建的項(xiàng)目的文件 ASGI
mysite/mysite/wsgi.py
: 使得WSGI兼容服務(wù)器運(yùn)行所創(chuàng)建的項(xiàng)目的文件 WSGI
- 在外層
mysite
目錄下運(yùn)行$ python manage.py check
此時(shí)可能會(huì)出現(xiàn)unapplied database migrations for now
的警告,請(qǐng)忽略浑塞,因?yàn)榈酱宋覀冞€沒有管理數(shù)據(jù)庫借跪。而且這個(gè)命令會(huì)自動(dòng)選 http://127.0.0.1:8000/端口,如果之前已經(jīng)創(chuàng)建project占用此端口酌壕,你需要更改端口掏愁,例如運(yùn)行命令:$ python3 manage.py check 8080
在pythonanywhere 運(yùn)行時(shí)需要更改url來源
source
3.在外層mysite目錄下創(chuàng)建應(yīng)用App$ python manage.py startapp polls
, 這個(gè)指令也創(chuàng)建了一個(gè)新的文件夾,在這個(gè)文件夾下有很多自動(dòng)創(chuàng)建的文件仅孩。
App文件夾目錄
4.更改$ mysite/polls/views.py
, 這個(gè)更改的是剛一進(jìn)入你的website時(shí)你的網(wǎng)頁返回內(nèi)容
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
項(xiàng)目和應(yīng)用的區(qū)別:An app is a Web application that does something – e.g., a Weblog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.
5.添加$ mysite/polls/urls.py
, 為了調(diào)用上述views.py托猩,需要將其map到一個(gè)URL。
from . import views
urlpatterns = [
path('', views.index, name='index'),]
6.添加$ mysite/mysite/urls.py
, 把web頁面上的一些“root URLconf”鏈接到
polls.urls 文件上去辽慕。
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),]
path() 功能 至少兩個(gè)arguments京腥,route
and view
, 還有兩個(gè)可選的arguments: kwargs
, and name
. ,可在鏈接中查看每個(gè)的含義溅蛉。
- check it out:http://localhost:8000/polls/
BTW公浪,polls是一個(gè)app他宛,把這個(gè)修改好的文件夾放到其他project下仍然適用,如“/content/polls/”欠气。