Как получить данные из url в django без параметров запроса

Прошу прощения за мой вопрос для новичков, так как я только начинаю изучать Django. Я буду благодарен, если кто-нибудь подскажет мне, как я могу динамически изменять данные на странице в Django. Позвольте мне прояснить следующее:

Что я хочу:

Когда url имеет вид http://localhost/data/1111, данные страницы должны иметь вид data is 1111.

Когда url имеет вид http://localhost/data/2222, данные страницы должны иметь вид data is 2222.

Что я сделал:

def index(request):
    print(int(request.GET["data"]))          # for debugging only
    return HttpResponse("data of Page")

и url был:

path('<int:data>', views.index, name='index')

Поскольку у вас есть значение в вашем url, часть <int:data>, которое должно быть захвачено представлением, что означает, что ваша функция представления должна знать о дополнительном параметре.

Итак, правильным представлением для этого было бы:

def index(request, data):
    print(data)  # data is already converted to int, since thats what you used in your url
    return HttpResponse(f"data is {data}")

Поскольку вы не хотите передавать параметры запроса в вашем url, измените ваш url на следующий

path('data/', views.index, name='index')

def index(request):
   print(int(request.GET["data"])) # for debugging only
   return HttpResponse("data of Page")

Обратите внимание, что в GET['data'], data это не то, что указано в шаблоне url, а скорее это должно быть имя ввода на форме, как <input name='amount' type='number' />

Теперь вы можете получить доступ к сумме следующим образом

def index(request):
   print(int(request.GET["amount"])) # for debugging only
   return HttpResponse("data of Page")
Вернуться на верх