私は、私のコードでRequestオブジェクトに頼っていない、何かエレガントなものを書こうとしています。すべての例では、 (r '^ hello /(?P。*)$'、 'foobar.views.hello') が使用されていますが、形。そのURLが..../hello?name = smithに反応するようにする方法はありますか?urls.pyにdjangoでURLパラメータを取得する方法はありますか?
1
A
答えて
3
絶対に。あなたのURLが関数にマップされている場合、この場合foobar.views.hello
には、その機能がGETリクエストのために次のようになります。エンコードされた形で
def hello(request):
if request.method == "GET":
name_detail = request.GET.get("name", None)
if name_detail:
# got details
else:
# error handling if required.
データ、すなわちPOSTパラメータ、request.POST
からあなたHTTP POST場合は利用可能です。
POSTリクエストでクエリパラメータが必要な場合は、これらを自分で構成することもできます。 、非POSTリクエストでフォームエンコードされたパラメータのための
PARAMS = dict()
raw_qs = request.META.get('QUERY_STRING', '') # this will be the raw query string
if raw_qs:
for line in raw_qs.split("&"):
key,arg = line.split("=")
PARAMS[key] = arg
、同様にこの操作を行います:ちょうどこれを行うあなたはジャンゴでフォームを使用しようとしている場合は、しかし、
FORM_PARAMS = QueryDict(request.raw_post_data)
を、あなたは間違いなくなりますdjango.forms。フォームライブラリ全体は、通常、あなたの人生を楽にします。私はDjangoを使って手作業でhtml形式を書いたことはありません。これはDjangoのこの部分がすべての作業を取り除くためです。
forms.py:
class FooForm(forms.Form):
name = fields.CharField(max_length=200)
# other properties
かさえ、この:簡単な概要として、あなたがこれを行う
class FooForm(forms.ModelForm):
class Meta:
model = model_name
を次に、あなたのリクエストで、あなたはに出フォームを渡すことができますテンプレート:
def pagewithforminit(request):
myform = FooForm()
return render_to_response('sometemplate.html', {'nameintemplate': myform},
context_instance=RequestContext(request))
それを受け取るビュー:
def pagepostingto(request):
myform = FooForm(request.POST)
if myform.is_valid(): # check the fields for you:
# do something with results. if a model form, this:
myform.save()
# creates a model for you.
model formsも参照してください。つまり、django.formsを強くお勧めします。
0
URLパターンでGETパラメータをキャッチすることはできません。あなたがdjango.core.handlers.base.BaseHandler.get_response
で見ることができるように、request.path_info
で終わるURLの一部のみがURLを解決するために使用される:
callback, callback_args, callback_kwargs = resolver.resolve(
request.path_info)
request.path_info
はGETパラメータが含まれていません。それらを処理するには、ナインフィンガーの答えを参照してください。
関連する問題
- 1. URLパラメータをDjangoのreverse_lazyに渡す方法urls.py
- 2. djangoパラメータを渡さずに逆URLを取得する方法はありますか?
- 3. Django urls.pyに問題があります
- 4. urls.pyでurls.pyのURL一致パラメータをreverse()に渡す
- 5. Djangoはurls.pyファイル内のパラメータを持つURLをリダイレクトしますか?
- 6. m.me /username URLにパラメータを渡す方法はありますか?
- 7. Djangoのカスタムデコレータuser_passes_test()でURLパラメータを取得できますか?
- 8. AJAX urlでphp variblesにパラメータ値を取得する方法は?
- 9. Webサービスのパラメータをプログラムで取得する方法はありますか?
- 10. javascript(Django)でログインユーザー情報を取得する方法はありますか?
- 11. JavaScriptでは、ファイル全体を取得せずにURLのコンテンツタイプを取得する方法はありますか?
- 12. PHPで起動ページのURLを取得する方法はありますか
- 13. storeify store URLでショップ名を取得する方法はありますか?
- 14. iOSでアプリのURLスキームを取得する方法はありますか?
- 15. インスタンスごとにURLを取得する方法はありますか?
- 16. ドメインサービスから、現在のURLを取得する方法はありますか?
- 17. Laravel 5のリクエストからurlパラメータを取得する方法は?
- 18. Open Xava:Open XavaのURLからパラメータを取得する方法は?
- 19. AngularアプリケーションのURLフラグメントからパラメータを取得する方法は?
- 20. .netコアのストアドプロシージャのパラメータを取得する方法はありますか?
- 21. Magentoコントローラでurlパラメータを取得する方法は?
- 22. ASP.NETページメソッド - ページメソッド内でurlパラメータ値を取得する方法は?
- 23. Django/Nginxブラウザリクエストの元の相対URLを取得する方法はありますか?
- 24. URLでハッシュを使用するときにurlパラメータを取得する方法
- 25. 特定のビジネスのYelp URLを取得する方法はありますか?
- 26. ウィキペディアの最終的なURLを取得する方法はありますか?
- 27. URLから変数を取得する方法とPHPで301リダイレクトする方法はありますか?
- 28. DjangoはURLパラメータを取得できません
- 29. DjangoのWebサイトに空のルートurls.pyファイルがあります
- 30. Python Djangoのモジュール「app」がeclipseのurls.pyにあります