python中Django的基本使用


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,可以看到頁面:

 

   這樣我們就完成了使用模板來輸出數據,從而實現數據與視圖分離。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM