feat(projects): 新增Django综合案例示例代码及素材
This commit is contained in:
0
projects/web-django/quickstart/view/__init__.py
Normal file
0
projects/web-django/quickstart/view/__init__.py
Normal file
3
projects/web-django/quickstart/view/admin.py
Normal file
3
projects/web-django/quickstart/view/admin.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
6
projects/web-django/quickstart/view/apps.py
Normal file
6
projects/web-django/quickstart/view/apps.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class ViewConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'view'
|
||||
3
projects/web-django/quickstart/view/models.py
Normal file
3
projects/web-django/quickstart/view/models.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
3
projects/web-django/quickstart/view/tests.py
Normal file
3
projects/web-django/quickstart/view/tests.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
8
projects/web-django/quickstart/view/urls.py
Normal file
8
projects/web-django/quickstart/view/urls.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from django.urls import path
|
||||
|
||||
from .views import IndexView, index
|
||||
|
||||
urlpatterns = [
|
||||
path("", index),
|
||||
path("class/", IndexView.as_view()),
|
||||
]
|
||||
59
projects/web-django/quickstart/view/views.py
Normal file
59
projects/web-django/quickstart/view/views.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from django.http import HttpResponse, HttpResponseNotAllowed
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views import View
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
def index(request):
|
||||
"""index page"""
|
||||
|
||||
method = request.method
|
||||
|
||||
if method == "GET":
|
||||
return HttpResponseNotAllowed(["POST"])
|
||||
elif method == "POST":
|
||||
return HttpResponse(f"You has got this page by POST method.")
|
||||
|
||||
|
||||
@method_decorator(csrf_exempt, name="dispatch")
|
||||
class IndexView(View):
|
||||
|
||||
template = """\
|
||||
<p>You has got this page by {method} method, the following steps are: <br />
|
||||
{content}
|
||||
</p>
|
||||
"""
|
||||
|
||||
def get(self, request):
|
||||
"""index page"""
|
||||
|
||||
steps = [
|
||||
"1. handle GET request",
|
||||
"2. log request and other info",
|
||||
"3. query something from database",
|
||||
]
|
||||
response = self.template.format(
|
||||
method="GET",
|
||||
content=r"<br />".join(steps),
|
||||
)
|
||||
|
||||
return HttpResponse(response)
|
||||
|
||||
def post(self, request):
|
||||
|
||||
steps = [
|
||||
"1. handle POST request",
|
||||
"2. log request and other info",
|
||||
"3. get form or parameters from request",
|
||||
"4. parse form or parameters",
|
||||
"5. query something from database",
|
||||
"6. return response",
|
||||
]
|
||||
|
||||
response = self.template.format(
|
||||
method="POST",
|
||||
content=r"<br />".join(steps),
|
||||
)
|
||||
|
||||
return HttpResponse(response)
|
||||
Reference in New Issue
Block a user