2014-07-18 17 views
31

So che questa è una domanda semplice, mi dispiace. Voglio solo restituire una stringa semplice, senza modelli.django: stringa di ritorno dalla vista

ho la mia vista:

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

non ricordo il comando. Grazie

risposta

55

Secondo il documentation:

Una funzione di visualizzazione, o vista in breve, è semplicemente una funzione Python che prende una richiesta Web e restituisce una risposta Web.

Ogni funzione di visualizzazione è responsabile della restituzione di un oggetto HttpResponse .

In altre parole, la visualizzazione dovrebbe restituire un'istanza HttpResponse:

from django.http import HttpResponse 

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

Non è possibile inviare direttamente una stringa, ma è possibile inviare un oggetto JSON:

from django.http import JsonResponse 

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

Poi processalo. Con Javascript per esempio se la pagina è stata richiesta da AJAX:

$.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

2

usiamo HttpResponse per rendere i dati

HttpResponse per rendere il testo

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

HttpResponse a rendere l'HTML

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