2016-09-25 5 views
0

Я пытаюсь создать простую django-приложение, которое взаимодействует с базой данных. Но у меня возникают проблемы с передачей более одного параметра в URL-адресе.передать несколько аргументов в url

Чтобы передать аргументы я сделать это таким образом:

127.0.0.1:8000/REST/insert/?n=test/?x=2/?y=2/?z=True 

, а затем в мой views.py Я получаю параметры с:

name = request.GET.get('n', '') 
x = request.GET.get('x', '') 
y = request.GET.get('y', '') 
z = request.GET.get('z', '') 

Очевидно, что я делаю неправильно , Как я могу это исправить?

+0

Почему ar Вы вручную создаете свой URL? –

+0

Это будет работать нормально, пока Google Bot не сканирует ваш сайт, не посещает эти ссылки и не добавляет ошибочные записи в вашу базу данных. Есть причина, почему POST существует ... – Basic

ответ

2

Разделители между параметрами запроса должны быть & символов вместо косых черт и вопросительных знаков (кроме первого).

/?n=test/?x=2/?y=2/?z=True 

должен быть

/?n=test&x=2&y=2&z=True 

Примечание: Я на самом деле не уверен, что вы должны использовать параметры запроса здесь, так как ваш URL имеет «вставить» в нем. Если вы действительно пытаетесь вставить вещи в базу данных, это, по крайней мере, должно быть сделано с помощью почтового запроса в виде пост-данных.

1

Что вы хотите сделать, это небезопасно. Поскольку вы выполняете операцию вставки, тип запроса должен быть POST, и вы должны отправить информацию как json.

Просто напишите данные как json и поместите его в тело запроса.

С вашего собственного мнения;

import json 
def your_view(request): 
    body_unicode = request.body.decode('utf-8') 
    data = json.loads(body_unicode) # This is a dictionary. 
0

Сначала нужно отредактировать файл urls.py принять Params вы отправляете, Должно быть,

URL (г '^ REST/вставка/$', views.YourFuntion, имя = 'ваш-ф'),

Второй заменить qustion знаки и хлещет с &, как это, 127.0.0.1:8000/REST/insert/?n=test & х = 2 & у = 2 & г = True

Смежные вопросы