django: tekenreeks terug uit weergave

Ik weet dat dit een simpele vraag is, sorry. Ik wil gewoon een eenvoudige tekenreeks retourneren, geen sjablonen.

Ik heb mijn mening:

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

Ik herinner me de opdracht niet meer. Bedankt


Antwoord 1, autoriteit 100%

Volgens de documentatie:

Een view-functie, of kortweg view, is gewoon een Python-functie die
neemt een webverzoek en retourneert een webantwoord.

Elke weergavefunctie is verantwoordelijk voor het retourneren van een HttpResponse
object.

Met andere woorden, uw weergave moet een HttpResponseinstantie:

from django.http import HttpResponse
def myview(request):
    return HttpResponse("return this string")

Antwoord 2, autoriteit 11%

Als je een chatbot maakt of dit antwoord op een postverzoek ter bevestiging nodig hebt, moet je een decorateur toevoegen, anders blokkeert Django postverzoeken.
Meer info vind je hier https://docs.djangoproject.com/en/2.1/ ref/csrf/

Ook in mijn geval moest ik content_type=”text/plain” toevoegen.

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")

Antwoord 3, autoriteit 5%

U kunt niet rechtstreeks een string verzenden, maar u kunt wel een JSON-object verzenden:

from django.http import JsonResponse
def myview(request):
    return JsonResponse({'mystring':"return this string"})

Verwerk dat dan. Met Javascript bijvoorbeeld als de pagina is opgevraagd door AJAX:

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

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


Antwoord 4, autoriteit 4%

we gebruiken HttpResponse om de gegevens weer te geven

HttpResponse om de tekst weer te geven

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

HttpResponse om de HTML weer te geven

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

Antwoord 5

urls.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>")

Antwoord 6

Volgens de documentatie van Django gebruikt Django verzoek- en antwoordobjecten om de status door het systeem te sturen.

Wanneer een pagina wordt opgevraagd, maakt Django een HttpRequest-object aan dat metadata over de aanvraag bevat. Vervolgens laadt Django de juiste weergave en geeft hij de HttpRequest als eerste argument door aan de weergavefunctie. Elke weergave is verantwoordelijk voor het retourneren van een HttpResponse-object. Ga als volgt te werk

from django.http import HttpResponse
def myview(request):
    text="return this string"
    return HttpResponse(text)

Other episodes