Django View和URL
網頁程序的邏輯:request進來 -> 從服務器獲取數據 -> 處理數據 -> 把網頁呈現出來
?
url 設置相當于客戶端向服務器發出request請求的入口,并用來指明要調用的程序邏輯
views 用來處理程序邏輯,然后呈現到template(一般為GET方法,POST方法略有不同)
template 一般為html+CSS的形式,主要是呈現給用戶的表現形式
?
Django中views里面的代碼時一個一個函數邏輯,處理客戶端(瀏覽器)發送的HTTPRequest,然后返回HTTPResponse。
那么開始在my_blog/article/views.py中編寫簡單的邏輯
?
?
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
return HttpResponse("Hello World, Django")
?
?
如何使這個邏輯在http請求進入時被調用,這里需要在my_blog/my_blog/urls.py中進行url設置
?
?
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = [
# url(r'^$', 'article.views.home'),
# url(r'^(?P<my_args>\d+)/$', 'article.views.detail', name='detail'),
url(r'^admin/', admin.site.urls),
url(r'^$', 'article.views.home'),
]
?
?
url() 函數有四個參數,兩個是必須的:regex和views,兩個可選的:kwargs和name
regex是regular expression的簡寫,這是字符串中的模式匹配的一種語法,Django將請求的URL從上至下依次匹配列表中的正則表達式,直到匹配到一個為止。
view當Django匹配了一個正則表達式就會調用指定的view邏輯,上面代碼中會調用article/views.py中的home函數
kwargs任意關鍵字參數可傳一個字典至目標view
name命名你的URL,使url在Django的其他地方使用,特別是在模塊中
?
很多時候我們希望給view中的函數邏輯傳入參數,從而呈現我們想要的結果
現在再my_blog/article/views.py 加入如下代碼:
?
?
def detail(request, my_args):
return HttpResponse("You're looking at my_args %s." % my_args)
?
?
在my_blog/my_blog/urls.py 中設置對應的url
?
urlpatterns = [
# url(r'^$', 'article.views.home'),
# url(r'^(?P<my_args>\d+)/$', 'article.views.detail', name='detail'),
url(r'^admin/', admin.site.urls),
url(r'^$', 'article.views.home'),
url(r'^(?P<my_args>\d+)/$', 'article.views.detail', name='detail'),
]
?
?
^(?P<my_args>\d+)/$這個正則表達式的意思是將傳入的一位或者多位數字作為參數傳遞到views中的detail作為參數, 其中?P<my_args>定義名稱用于標識匹配的內容
轉載自https://blog.csdn.net/xiaoquantouer/article/details/51792860
總結
以上是生活随笔為你收集整理的Django View和URL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】pysnooper模块对
- 下一篇: 【Python】ffmpeg模块处理视频