django版本區別


路由層

區別

區別 django1.x django2.x or 3.x
方法 url方法from django.conf.urls import url path方法from django.urls import path
url參數 第一個參數支持正則表達式 第一個參數不支持正則表達式

額外補充

關於3.x版本不支持正則表達式的問題

  • re_path

如果習慣了使用正則表達式,3.x版本提供了另一個方法re_path,re_path就等價於1.x版本中的url

from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('index',views.index),
    re_path('^index/\d+',views.index),
]
  • 轉換器

雖然path不支持正則,但是內部支持五種轉換器

path('index/<int:id>/',views.index)
# 將第二個路由中的內容轉成整形然后以關鍵字參數的形式傳遞給后面的視圖函數

def index(request,id):
    print(id,type(id))
    return HttpResponse('index')
五種轉換器介紹
- str,匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式
- int,匹配正整數,包含0。
- slug,匹配字母、數字以及橫杠、下划線組成的字符串。
- uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
- path,匹配任何非空字符串,包含了路徑分隔符(/)(不能用?)
  • 自定義轉換器

待定

模型層

  • 1.x版本外鍵默認是級聯更新和級聯刪除的

  • 2.x 3.x版本需要手動配置參數

    models.ForeignKey(to='Publish')
    models.ForeignKey(to='Publish',on_delete=models.CASCADE...)


免責聲明!

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



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