web-dev-qa-db-ja.com

django:ビューから文字列を返します

これは簡単な質問です、ごめんなさい。テンプレートではなく、単純な文字列を返したいだけです。

私の意見があります:

def myview(request):
    return "return this string"

コマンドを覚えていません。ありがとう

43
Paul

ドキュメント によると:

ビュー関数、または略してビューは、単純にPython関数であり、Web要求を受け取り、Web応答を返します。

各ビュー関数は、HttpResponseオブジェクトを返す責任があります。

つまり、ビューは HttpResponse インスタンスを返す必要があります。

from Django.http import HttpResponse

def myview(request):
    return HttpResponse("return this string")
74
alecxe

文字列を直接送信することはできませんが、JSONオブジェクトを送信することはできます。

from Django.http import JsonResponse

def myview(request):
    return JsonResponse({'mystring':"return this string"})

その後、それを処理します。たとえば、ページがAJAXによって要求された場合、Javascriptを使用します。

$.ajax({url: '/myview/',    type: 'GET',
                            data: data,
                            success: function(data){ 
                                console.log(data.mystring);
                                ...
                                 }
                            })

https://docs.djangoproject.com/en/1.11/ref/request-response/#jsonresponse-objects

4
ThePhi

チャットボットを作成するか、確認のために投稿リクエストでこの応答が必要な場合は、デコレータを追加する必要があります。それ以外の場合はDjango投稿リクエストをブロックします。詳細はこちらをご覧ください https:/ /docs.djangoproject.com/en/2.1/ref/csrf/

また、私の場合、content_type = "text/plain"を追加する必要がありました。

from Django.views.decorators.csrf import csrf_protect
from Django.http import HttpResponse
@csrf_exempt
def Index(request):
    return HttpResponse("Hello World", content_type="text/plain")
3
awaik

httpResponseを使用してデータをレンダリングします

テキストをレンダリングするHttpResponse

from Django.http import HttpResponse
def Index(request):
    return HttpResponse("Hello World")

HTMLをレンダリングするHttpResponse

from Django.http import HttpResponse
    def Index(request):
        text = """<h1>Hello World</h1>"""
        return HttpResponse(text)    
3
vinodsesetti

一致Django documentation Djangoは、要求オブジェクトと応答オブジェクトを使用して、システムに状態を​​渡します。

ページがリクエストされると、Djangoはリクエストに関するメタデータを含むHttpRequestオブジェクトを作成します。その後、Djangoは最初の引数としてHttpRequestを渡し、適切なビューをロードしますビュー関数へ。各ビューはHttpResponseオブジェクトを返します。

from Django.http import HttpResponse

def myview(request):
    text="return this string"
    return HttpResponse(text)
0
Thusitha Deepal

rls.py

from Django.contrib import admin
from Django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('about/',views.aboutview),
    path('',views.homeview),
]

views.py

from Django.http import HttpResponse

def aboutview(request):
  return HttpResponse("<h1>about page</h1>")

def homeview(request):
  return HttpResponse("<h1>home page</h1>")
0
Yilmaz