2016-09-25 14 views
0

私はデータベースとやり取りする簡単なdjangoアプリケーションを作ろうとしています。しかし、URLに複数のパラメータを渡すのに問題があります。明らかにはURLに複数の引数を渡します

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

私はそれが間違ってやっている:views.pyは、私はパラメータを持つ取得私の中に、その後

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

そして:

私はこのようにそれを行うに引数を渡すには。どうすれば修正できますか?

+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

まず、それがあるべき 、あなたが送信しているのparamsを受け入れるためにあなたのurls.pyファイルを編集する

URL(R '^ REST /挿入/ $'、views.YourFuntion、名前を持っています= 'あなたの-FN')、

第二には、qustionマークを交換し、このような&でスラッシュ、 127.0.0.1:8000/REST/insert/?n=test & X = 2 & Y = 2 & Z =真

関連する問題