from urllib.request import urlopen from django.http import HttpResponse, StreamingHttpResponse from django.views.decorators.csrf import csrf_exempt from .models import Person def example_view(request): return HttpResponse('example view') def streaming_example_view(request): return StreamingHttpResponse((b'I', b'am', b'a', b'stream')) def model_view(request): people = Person.objects.all() return HttpResponse('\n'.join(person.name for person in people)) def create_model_instance(request): person = Person(name='emily') person.save() return HttpResponse('') def environ_view(request): return HttpResponse("\n".join("%s: %r" % (k, v) for k, v in request.environ.items())) def subview(request): return HttpResponse('subview') def subview_calling_view(request): with urlopen(request.GET['url'] + '/subview/') as response: return HttpResponse('subview calling view: {}'.format(response.read().decode())) def check_model_instance_from_subview(request): with urlopen(request.GET['url'] + '/create_model_instance/'): pass with urlopen(request.GET['url'] + '/model_view/') as response: return HttpResponse('subview calling view: {}'.format(response.read().decode())) @csrf_exempt def method_view(request): return HttpResponse(request.method)