Как я могу получить аргументы, которые начинаются с указанного параметра c в URL Django? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть приложение Django. Я хочу, чтобы URL отправлялся на Django, включая http://127.0.0.1:8000/flower/blue/mix/2/1, получая значение /blue/mix/2/1. Я пытаюсь этот шаблон, но не работает:

urls.py:

 path('flower/<str:queryparams>',views.flower,name='flower'),
 re_path(r'^flower/(?:page-(?P<page_number>\d+)/)?$',views.flower,name='flower2'),

views.py:

def flower(self,request,response):
    path = request.get_full_path()# not work
    print(path)# not work
    print(self.kwargs['parameter']) # not work
    print(request.get['str'])  # not work
    print('+++++++++++++++++++++++++++++++++++++++++')
    return response

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

этот код тоже работает:

urls.py:

urlpatterns=[
           path('flower/<str:A>/<str:B>/<int:C>/<int:D>',views.flower,name='flower') 
            ]

views.py:

def flower(request,A,B,C,D):
    print(A)
    print(B)
    print(C)
    print(D)
0 голосов
/ 02 мая 2020

просмотр аргументов - это то, что вам нужно. Вы можете определить переменные в вас urls.py следующим образом:

re_path(r'^flower/(?P<color>\w+)/(?P<type_name>\w+)/(?P<sub1>\d+)/(?P<sub2>\d+)$',views.flower,name='flower2')

в вашем views.py вы можете использовать их как аргументы представлений, подобные этому (если вы не используете представления на основе классов ):

def flower(request, color, type_name, sub1, sub2):
    print(color, type_name, sub1)
    # do whatever you want with them
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...