Django 02 url路由配置及渲染方式
生活随笔
收集整理的這篇文章主要介紹了
Django 02 url路由配置及渲染方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Django 02 url路由配置及渲染方式
一、URL
#URL #(Uniform Resoure Locator) 統一資源定位符:對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。
互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它
格式
http://127.0.0.1:8000/hello/#url解釋 schema://host[:port#]/path/.../[?query-string][#anchor] schema #指定使用的協議(例如:http,https,ftp) host #Http服務器的ip地址或者域名 port #端口號,http默認的是80端口 path #訪問資源的路徑 query-string #發送給http服務器的數據 anchor #錨點url.py的作用
#該文件就是URL配置(URLconf),就像是Django所支撐網站的目錄。它的本質是URL模式以及要為該URL模式調用的視圖函數之間的映射表。以這樣的方式告訴Django,對于那個URL調用那段代碼。url的加載就是從配置文件中開始的
怎么獲取變量
#1、在view.py(視圖)中定義函數,參數里面添加xx,return里面字符串拼接xx def hello(request,xx):return HttpResponse('啦啦啦啊,%s'%xx)#2、在url.py里面添加path,前面加上xxpath('hello2/<xx>/', views.hello)如果需要對變量有所要求,可以進行類型轉換
path('hello2/<int:xx>/', views.hello)#在設置path里面添加上int,就只能輸入int類型,這是對xx進行強制類型轉換#總共可以放入5種類型 str#匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式 int#匹配正整數,包含0。 slug#匹配字母、數字以及橫杠、下劃線組成的字符串。 uuid#匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。 path#匹配任何非空字符串,包含了路徑分隔符path里面的正則設置,需要使用re_path
re_path('^hello/(?P<yy>\d+)/$',views.hello) #使用正則?二、include、kwargs、name
include? 為了使app里面的視圖函數有自己的url,在項目的url.py里面添加include,簡而言之,路由分配
#在項目的url上面添加一條path path('book/',include('book.urls')) #在主路由添加path表示book這個app下面的分路由#在book這個app里面添加一個urls.py,它關聯的是當前目錄也就是book目錄下的view.pyfrom django.urls import path from . import viewsurlpatterns = [path('index/',views.index) ]#模式跟項目urls的模式一樣kwargs 傳遞一個Python字典作為額外的參數傳遞給視圖函數,視圖函數可以通過關鍵字參數獲取到
path('index/<xx>',views.index,{'switch':'true'}) #在最后面添加字典,主路由的字典可以共享給app子路由,字典里面可以是多個值from django.http import HttpResponse import datetimedef index(request,xx,**kwargs):print(xx)print(kwargs)if kwargs.get('switch') == 'true': #在需要用到字典是的時候就可以直接用這個來獲取值print(datetime.datetime.now())return HttpResponse('這是book頁面的主頁!!!')name? 給一個匹配的url地址取名字,一般用于模板,也可以使用reverse進行網頁重定向
path('old',views.old),path('new',views.new,name='new'),def old(request):# return HttpResponse('這是老的頁面') #原頁面return redirect('/book/new') #方法一:頁面重定向,也就是返回到另外一個路由,用redirect跳轉路由return redirect(reverse('new')) #方法二:在上面已經定義了新路由的名字為new,直接用reverse解析name,redirect跳轉def new(request):return HttpResponse('這是新的頁面')三、模板渲染
#1、在項目目錄下創建一個templates目錄#2、在項目settings.py第57行輸入路徑 os.path.join(BASE_DIR,'templates') path('index1', views.book_index1),path('index2/<xx>', views.book_index2),from django.template.loader import get_template def book_index1(request):#老方法,現在不用這個了,太麻煩t = get_template('book/index.html') #獲取模板賦值給tname = 'taka'html = t.render({'name':name}) #將變量傳進去return HttpResponse(html)def book_index2(request,xx):name = 'takadasdsa'return render(request,'book/index.html',context={'name':'taka', #傳字典'age':xx, #傳變量 })?
轉載于:https://www.cnblogs.com/xuchengcheng1215/p/9332265.html
總結
以上是生活随笔為你收集整理的Django 02 url路由配置及渲染方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Failed to configure
- 下一篇: Zookeeper、Hadoop、Hba