Django 路由使用

其它路由详细案例


# 不传参访问:http://127.0.0.1:8000/book/helloa/
    url(r'^helloa/$', views.get_book, name='get_book'),

    # 传一个参访问:http://127.0.0.1:8000/book/hellob/china/
    url(r'^hellob/(.+)/$', views.add_book, name='add_book'),

    # 传多个参数访问:http://127.0.0.1:8000/book/helloc/p1china/p22012/
    url(r'^helloc/p1([A-Za-z0-9]+)/p2(.+)/$', views.update_book, name='update_book'),


    # 传多个参数访问:http://127.0.0.1:8000/book/hellod/1/5r5/k/
    # 这样的路由写法\d是代表数字,[A-Za-z0-9]表示字母加数字,[A-Za-z]表示a到z不区分大小写
    url(r'^hellod/(\d+)/([A-Za-z0-9]+)/([A-Za-z]+)/', views.get_cs, name='get_cs'),

    # 传多个参数指定关键字参数:http://127.0.0.1:8000/book/helloe/1/5r5/k/
    # (?P\d+)/(?P[A-Za-z0-9]+)/(?P[A-Za-z]+):传递的参数是什么尖括号里就写什么,直接对应views里传递的参数
    url(r'^helloe/(?P\d+)/(?P[A-Za-z0-9]+)/(?P[A-Za-z]+)/', views.get_ss, name='get_ss'),

def get_book(request):
    return HttpResponse("Hello World")


def add_book(request, param1):
    return HttpResponse("The param is:" + param1)


def update_book(request, param1, param2):
    return HttpResponse("p1 = " + param1 + "; p2 = " + param2)


def get_cs(request, s_id, s_ids, s_number):
    return HttpResponse("成功接到三个参数:" + s_id + "----" + s_ids + "----" + s_number)


def get_ss(request, a_id, a_ids, a_number):
    return HttpResponse("成功接到关键字参数:" + a_id + "----" + a_ids + "----" + a_number)


# django 2.0以下可以直接用url来进行正则表达式传参。2.0以上是直接使用path来进行传参,如果path没有满足传参类型,还可以用re_path()直接使用正则表达式来进行传参
    # 传递参数说明:
    # str- 匹配除路径分隔符之外的任何非空字符串'/'。如果转换器未包含在表达式中,则这是默认值。
    # int - 匹配零或任何正整数。返回一个int。
    # slug - 匹配由ASCII字母或数字组成的任何slug字符串,以及连字符和下划线字符。例如, building-your-1st-django-site。
    # uuid - 匹配格式化的UUID。要防止多个URL映射到同一页面,必须包含短划线并且字母必须为小写。例如,075194d3-6885-417e-a8a8-6c931e272f00。返回一个 UUID实例。
    # path- 匹配任何非空字符串,包括路径分隔符 '/'。这使您可以匹配完整的URL路径,而不仅仅是URL路径的一部分str。
    path('getbook//', views.get_book, name='get_book'),
    # path('getbooks/', views.get_books, name='get_books'),
    path('addbook/', views.add_book, name='add_book'),
    path('delbook//', views.del_book, name='del_book'),
    path('delallbook/', views.del_allbook, name='del_allbook'),
    path('updatebook//', views.update_book, name='update_book'), 

你可能感兴趣的:(Python3.8,Django2.2.7,django,python)