django學習-安裝、建立應用、編寫視圖

快速安裝指南

py -3 -m pip install djangopython

 

>>> import djangoweb

>>> django.get_version()正則表達式

'2.2.6'數據庫

 

查看版本也能夠這樣:apache

C:\Users\Lenovo>py -m django --versiondjango

2.2.6服務器

編寫第一個Django應用-投票應用程序

投票應用程序由兩部分組成:網絡

一個讓人們查看和投票的公共站點app

一個讓你能添加、修改和刪除投票的管理站點函數

 

建立項目django-admin startproject mysite

運行如下命令,會在當前目錄下建立一個mysite目錄。

D:\django>django-admin startproject mysite

 

 

咱們來看下startproject建立了什麼

 

 

startproject命令產生的目錄和文件的用處

mysite/根目錄是你項目的容器,能夠重命名爲其餘名字。

manage.py:一個讓你用各類方式管理django項目的命令行工具。

裏面一層的mysite/目錄包含你的項目,他是一個純python包。它的名字就是當你引用它內部任務東西時須要用到的python包名。(如mysite.urls)

mysite/__init__.py:一個空文件,告訴python這個目錄應該被認爲是一個python包。

mysite/settings.py:django項目的配置文件。

mysite/urls.py:django項目的URL聲明,就像你網站的「目錄」。

mysite/wsgi.py:做爲你的項目的運行在wsgi兼容的web服務器上的入口

 

用於開發的建議服務器

運行py -3 -m manage.py runserver啓動django自帶的簡易服務器

 

 

剛剛啓動的是django自帶的用於開發的建議服務器,它是一個用純python寫的輕量級的web服務器。咱們將這個服務器內置在django中是爲了讓你能快速的開發出想要的東西,由於你不須要進行配置生產級別的服務器(如apache)方面的工做,除非你已經準備好投入生產環境了。

 

訪問https://127.0.0.1:8000/,你將會看到django的頁面。

 

 

更換端口和ip

默認狀況下,runserver命令會將服務器設置爲監聽本機內部IP的8000端口。

若是想更換服務器的監聽端口,能夠運行下面的命令修改端口

py -3 manage.py runserver 8080

 

若是想修改服務器監聽的ip,能夠在端口以前輸入新的。如,爲了監聽全部服務器的公開ip,使用:

py -3 manage.py runserver 0:8000

 

 

0是0.0.0.0的簡寫

 

建立投票應用

在django中,每個應用都是一個python包,而且遵循着相同的約定。django自帶一個工具,能夠幫你生成應用的基礎目錄結構,這樣你就能專心寫代碼,而不是建立目錄了。

 

項目VS應用

項目和應用有啥區別?應用時一個專門作某件事的網絡應用程序—好比博客系統,或者公共記錄的數據庫,或者簡單的投票程序。項目則是一個網站使用的配置和應用的集合。項目能夠包含不少個應用。應用能夠被不少個項目使用。

 

 

你的應用能夠存放在任何python path中定義的路徑。在本教程中,咱們將在manage.py統計目錄下建立投票應用。這樣它就能夠做爲頂級模塊導入,而不是mysite的子模塊。

 

在manage.py所在目錄下,運行命令來建立應用

運行命令:py -3 manage.py startapp polls

這會在manage.py同級目錄下建立一個polls目錄,結構以下圖:

 

 

這個目錄結構包括了投票應用的所有內容

 

編寫第一個視圖

在polls/view.py中輸入如下代碼,編寫第一個視圖:

 

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. U r at the polls index.")

 

這時django中最簡單的視圖。若是想看見效果,咱們須要將一個URL映射到它—這就是咱們須要URLconf的緣由了。

建立URLconf

爲了建立URLconf,請在polls目錄裏建立一個urls.py文件。你的應用目錄如今看起來應該是這樣:

 

在polls/urls.py中,輸入以下代碼:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

 

在根URLconf文件中指定咱們建立的polls.urls模塊

 

下一步是要在根URLconf文件中指定咱們建立的polls.urls模塊

在mysite/urls.py文件的urlpatterns列表裏插入一個include(),以下:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

 

函數include()容許引用其餘URLconfs。每當遇到:func: ~django.urls.include時,它會截斷與

此匹配的URL的部分,並將剩餘的字符串發送到URLconf以供進一步處理。

 

咱們設計include()的理念是使其能夠即插即用。由於投票應用有它本身的URLconf(pools/urls.py),他們可以被放在」/polls/」,」/fun_polls/」,」/content/polls/」,或者其餘任何路徑下,這個應用都可以正常工做。

 

什麼時候使用include()

當包括其餘URL模式時你應該老是使用include(),admin.site.urls是惟一例外。

 

 

如今已經把index視圖添加進了URLconf。能夠驗證是否正常工做,運行下面的命令:

 

py -3 manage.py runserver

 

訪問http://localhost:8000/polls/

頁面上能夠看到咱們定義的文字:

"Hello, world. U r at the polls index."

 

函數path()具備四個參數

 

函數path()具備四個參數,兩個必須參數:route和view,兩個可選參數:kwargs和name。

mysite/urls.py
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
polls/urls.py:
urlpatterns = [
    path('', views.index, name='index'),
]

 

path()參數:route

route是一個匹配URL的準則(相似正則表達式)。當django響應一個請求時,它會從urlpatterns的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項。

 

這些準則不會匹配GET和POST請求的參數或域名。例如URLconf在處理請求https://www.example.com/myapp/時,它會嘗試匹配myapp/

處理請求https://www.example.com/myapp/?page=3時,也只會嘗試匹配myapp/

 

path()參數:view

當django找到了一個匹配的準則,就會調用這個特定的視圖函數,並傳入一個HttpRequest對象做爲第一個參數,被「捕獲」的參數以關鍵字參數的形式傳入。

def index(request):
    return HttpResponse("Hello, world. U r at the polls index.")
path()參數:kwargs

任意個關鍵字參數能夠做爲一個字典傳遞給目標視圖函數。

 

path()參數:name

爲你的URL取名能使你在django的任意地方惟一地引用它,尤爲是在模板中。這個有用的特性容許你只改一個文件就能全局地修改某個URL模式(沒太理解)。

 

polls/urls.py:
urlpatterns = [
    path('', views.index, name='index'),
]
相關文章
相關標籤/搜索