1. 程式人生 > >Django專案的建立及基本使用

Django專案的建立及基本使用

辛苦堆砌,轉載請註明出處,謝謝!

Django是Python進行Web開發的框架,目前應用比較廣泛。使用Python進行Web開發,能夠很快的搭建所需的專案,可以運用於原型開發,也可以部署到實際的應用環境。

        使用Django開發,首先要安裝Django模組,安裝過Python的系統,啟動命令列,執行

pip install django

即可完成Django的安裝。

安裝好Django,就可以開始我們的開發了,本文建立一個展示Hello xxx的Web頁面,xxx由GET引數指定。Django可以很快的完成專案的開發。

        首先,建立專案,在希望建立專案的目錄執行

django-admin.py startproject hello
我們建立了專案名為hello的專案,此時hello目錄結構如下: . ├── hello │   ├── __init__.py │   ├── settings.py │   ├── urls.py │   └── wsgi.py ├── manage.py

我們執行

python manage.py runserver
此時,瀏覽器訪問http://localhost:8000/,應該可以看到我們的伺服器已經啟動了。顯示了一個Welcome to Django的頁面。

        Django提倡基於應用作為單位進行開發,我們建立自己的應用,使用命令

python manage.py startapp say_hello
這樣,就建立了say_hello應用,當前目錄結構為:

.
├── hello
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
└── say_hello
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py


可以看到,多出了一個say_hello目錄。下面開始我們的開發,首先在say_hello目錄下,新建一個templates目錄,其中建立say_hello.html頁面。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <h1>Hello {{hello_words}}</h1>
</body>
</html>
頁面很簡單,我們使用了Django提供的模板,取hello_words引數渲染檢視,後面會看到如何賦值這個引數。

        現在有了頁面,我們需要做我們的控制器,在say_hello目錄下的views.py中新增函式

from django.shortcuts import render


def hello_page(request):
    return render(
        request,
        'say_hello.html',
        {'hello_words': request.GET.get('hello_words', "")}
    )
使用了render函式,該函式會返回一個response物件,該物件中有經過渲染的html,我們這裡基於say_hello.html模板進行渲染,渲染的引數由字典表示,引數名為hello_words,內容是GET請求的hello_words的引數值,如果沒有引數值,則hello_words的值為""。

        完成了控制器,設定一下url對映,開啟hello目錄下的urls.py,新增對映

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

from say_hello import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.hello_page, name='hello_page'),
]
使用正則表示式^$,將傳送到根路徑下的請求轉交給home_page處理,就是上面實現的控制器,這裡Django使用檢視來表示控制器,實際上Django也是MVC架構,只是M對應的是實體類,V對應的是模板,也就是html檔案,控制器對應了views.py的定義。

        現在執行程式,還是無法執行的,會報錯找不到say_hello.html,這是因為我們還需要註冊一下我們的應用,開啟settings.py檔案,在INSTALLED_APPS列表中新增一項"say_hello",如下

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'say_hello',
]
現在執行伺服器,瀏覽器輸入localhost:8000可以看到Hello,如果是使用http://localhost:8000/?hello_words=World,則可以看到Hello World.