1. 程式人生 > >django複習-1-環境搭建和建立專案

django複習-1-環境搭建和建立專案

一、虛擬環境搭建

1. 建立虛擬環境,需要聯網

mkvirtualenv django_py3_1.11 -p python3

2. 安裝Django

使用django 1.11.11版本,注意需要聯網

pip install django==1.11.11

3.建立django工程

django-admin startproject demo(工程名稱)

4.工程目錄說明

 

  • 與專案同名的目錄,此處為demo。
  • settings.py 是專案的整體配置檔案。
  • urls.py 是專案的URL配置檔案。
  • wsgi.py 是專案與WSGI相容的Web伺服器入口。
  • manage.py 是專案管理檔案,通過它管理專案。

5.執行方式

python manage.py runserver ip:埠
或:
python manage.py runserver

可以不寫IP和埠,預設IP是127.0.0.1,預設埠為8000。

在瀏覽器中輸入網址“127.0.0.1:8000”便可看到效果。

django預設工作在調式Debug模式下,如果增加、修改、刪除檔案,伺服器會自動重啟。

按ctrl+c停止伺服器。

6.建立子應用

# python manage.py startapp 子應用名稱
python manage.py startapp users

7.子應用目錄說明

  • admin.py 檔案跟網站的後臺管理站點配置相關。
  • apps.py 檔案用於配置當前子應用的相關資訊。
  • migrations 目錄用於存放資料庫遷移歷史檔案。
  • models.py 檔案使用者儲存資料庫模型類。
  • tests.py 檔案用於開發測試用例,編寫單元測試。
  • views.py 檔案用於編寫Web應用檢視。

 8.註冊安裝子應用

在工程配置檔案settings.py中,INSTALLED_APPS項儲存了工程中已經註冊安裝的子應用.

註冊安裝一個子應用的方法,即是將子應用配置資訊檔案apps.py中的Config類新增到INSTALLED_APPS列表中。

9.建立檢視

Django的檢視是定義在子應用的views.py中的。

from
django.http import HttpResponse def hello(request): """ 定義一個檢視函式 :param request: 請求物件 :return: 相應物件 """ return HttpResponse("hello world!")

說明:

  • 檢視函式的第一個傳入引數必須定義,用於接收Django構造的包含了請求資料的HttpReqeust物件,通常名為request
  • 檢視函式的返回值必須為一個響應物件,不能像Flask一樣直接返回一個字串,可以將要返回的字串資料放到一個HttpResponse物件中。

10.定義路由url

新建一個urls.py檔案用於儲存該應用的路由。

from django.conf.urls import url
from . import views


# urlpatterns是被django自動識別的路由列表變數

urlpatterns = [
    # 每個路由資訊都需要使用url函式來構造
    # url(路徑, 檢視)
    url(r'^index/$', views.hello),
]

然後在總路由中新增子應用的路由資料。

from django.conf.urls import url, include
from django.contrib import admin


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^users/', include('users.urls')),
]
  • 使用include來將子應用users裡的全部路由包含進工程路由中;
  • r'^users/' 決定了users子應用的所有路由都以/users/開頭,如我們剛定義的檢視index,其最終的完整訪問路徑為/users/index/

include函式除了可以傳遞字串之外,也可以直接傳遞應用的urls模組,如

from django.conf.urls import url, include
from django.contrib import admin
import users.urls

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # url(r'^users/', include('users.urls')),
    url(r'^users/', include(users.urls))
]

執行程式,訪問127.0.0.1:8000/users/index/