web-dev-qa-db-de.com

django: String aus der Sicht zurückgeben

Ich weiß, das ist eine einfache Frage, sorry. Ich möchte nur eine einfache Zeichenfolge zurückgeben, keine Vorlagen.

Ich habe meine ansicht:

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

Ich erinnere mich nicht an den Befehl. Vielen Dank

37
Paul

Nach der Dokumentation :

Eine Ansichtsfunktion oder kurz Ansicht ist einfach eine Python-Funktion, die nimmt eine Webanforderung und gibt eine Webantwort zurück. 

Jede Ansichtsfunktion ist für die Rückgabe einer HttpResponse .__ verantwortlich. Objekt. 

Mit anderen Worten, Ihre Sicht sollte eine HttpResponse Instanz zurückgeben:

from Django.http import HttpResponse

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

Sie können einen String nicht direkt senden, aber Sie können ein JSON-Objekt senden:

from Django.http import JsonResponse

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

Dann verarbeiten Sie das. Mit Javascript zum Beispiel, wenn die Seite von AJAX angefordert wurde:

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

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

3
ThePhi

wir verwenden HttpResponse zum Rendern der Daten

HttpResponse zum Rendern des Textes

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

HttpResponse zum Rendern des HTML

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

Wenn Sie einen Chat-Bot erstellen oder diese Antwort auf eine Postanforderung zur Bestätigung benötigen, sollten Sie den Dekorator hinzufügen, andernfalls blockiert Django die Postanfragen . Weitere Informationen finden Sie hier https://docs.djangoproject.com/de /2.1/ref/csrf/

In meinem Fall musste ich content_type = "text/plain" hinzufügen.

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")
0
Alex Awaikin

Laut Django Dokumentation Django verwendet Anfrage- und Antwortobjekte, um den Status durch das System zu leiten.

Wenn eine Seite angefordert wird, erstellt Django ein HttpRequest-Objekt, das Metadaten zu der Anforderung enthält. Anschließend lädt Django die entsprechende Ansicht und übergibt HttpRequest als erstes Argument Jede Ansicht ist für die Rückgabe eines HttpResponse-Objekts verantwortlich

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