学习笔记,仅供参考
参考自:Django打造大型企业官网;
本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写一下。
利用UUID传递参数
- 关于UUID
UUID是通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。 – 百度百科
- UUID识别码的格式
[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
- 利用python的uuid类生成UUID识别码
代码:
In [1]: import uuid
In [2]: uuid.uuid4()
Out[2]: UUID('4b301c53-5fe6-4f71-9d23-a8935e80f641')
- 利用uuid识别码传递参数
我们在book应用下的urls.py文件中添加一个路由,并指定参数的数据类型为uuid类型:
from django.contrib import admin
from django.urls import path
from django.urls import re_path
from . import views
urlpatterns = [
path('show_book/', views.show_book),
re_path('<book_id>/$', views.book_detail),
path('show_author/', views.author),
path('book_uuid/<uuid:bookuuid>/', views.book_uuid)
]
在views.py模块下创建一个视图函数book_uuid:
def book_uuid(request, bookuuid):
html = "<h2>书籍的UUID识别码为{}</h2>".format(bookuuid)
return HttpResponse(html)
利用刚才得到的UUID识别码,向http://127.0.0.1:8000/book/book_uuid/4b301c53-5fe6-4f71-9d23-a8935e80f641/发起请求: