Я знаю, что это простой вопрос, извините. Я просто хочу вернуть простую строку, без шаблонов.
У меня есть мое мнение:
def myview(request):
return "return this string"
Я не помню эту команду. Благодаря
Я знаю, что это простой вопрос, извините. Я просто хочу вернуть простую строку, без шаблонов.
У меня есть мое мнение:
def myview(request):
return "return this string"
Я не помню эту команду. Благодаря
В соответствии с документацией:
Функция просмотра или короткое представление - это просто функция Python, которая принимает веб-запрос и возвращает ответ Web.
Каждая функция просмотра отвечает за возврат HttpResponse объект.
Другими словами, ваше представление должно возвращать экземпляр HttpResponse
:
from django.http import HttpResponse
def myview(request):
return HttpResponse("return this string")
Вы не можете напрямую отправить строку, но вы можете отправить объект JSON:
from django.http import JsonResponse
def myview(request):
return JsonResponse({'mystring':"return this string"})
Затем обработайте это. Например, с Javascript, если страница была запрошена 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
мы используем HttpResponse для рендеринга данных
HttpResponse для визуализации текста
from django.http import HttpResponse
def Index(request):
return HttpResponse("Hello World")
HttpResponse для отображения HTML
from django.http import HttpResponse
def Index(request):
text = """<h1>Hello World</h1>"""
return HttpResponse(text)
Если вы создаете чат-бота или вам нужен этот ответ на пост-запрос на подтверждение - вы должны добавить декоратор, в противном случае 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")
Согласно документации Django, Django использует объекты запроса и ответа для передачи состояния через систему.
Когда запрашивается страница, Django создает объект HttpRequest, который содержит метаданные о запросе. Затем Django загружает соответствующий вид, передавая HttpRequest в качестве первого аргумента функции вида. Каждое представление отвечает за возврат объекта HttpResponse.
from django.http import HttpResponse
def myview(request):
text="return this string"
return HttpResponse(text)
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>")