1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
import os
import time
from django.db import connections
from django.http import FileResponse
from django.shortcuts import render
from django.template.response import TemplateResponse
from testapp.models import Lawn
def index(request):
return TemplateResponse(request, "index.html", {})
def help(request):
# render does not instantiate a TemplateResponse, so it does not
# increment the "by_templatename" counters.
return render(request, "help.html", {})
def slow(request):
"""This view takes .1s to load, on purpose."""
time.sleep(0.1)
return TemplateResponse(request, "slow.html", {})
def newlawn(request, location):
"""This view creates a new Lawn instance in the database."""
lawn = Lawn()
lawn.location = location
lawn.save()
return TemplateResponse(request, "lawn.html", {"lawn": lawn})
class ObjectionException(Exception):
pass
def objection(request):
raise ObjectionException("Objection!")
def sql(request):
databases = connections.databases.keys()
query = request.GET.get("query")
db = request.GET.get("database")
if query and db:
cursor = connections[db].cursor()
cursor.execute(query, [])
results = cursor.fetchall()
return TemplateResponse(
request,
"sql.html",
{"query": query, "rows": results, "databases": databases},
)
return TemplateResponse(request, "sql.html", {"query": None, "rows": None, "databases": databases})
def file(request):
return FileResponse(open(os.devnull, "rb"))
|