django中请求处理方式有2种:FBV 和 CBV 一、FBVFBV(function base views) 就是在视图里使用函数处理请求。 看代码: urls.py 1 2 3 4 5 6 7 8 | from django.conf.urls import url, include
# from django.contrib import admin
from mytest import views
urlpatterns = [
# url(r‘^admin/‘, admin.site.urls),
url(r‘^index / ‘, views.index),
]
|
views.py 1 2 3 4 5 6 7 8 9 | from django.shortcuts import render
def index(req):
if req.method = = ‘POST‘:
print (‘method is :‘ + req.method)
elif req.method = = ‘GET‘:
print (‘method is :‘ + req.method)
return render(req, ‘index.html‘)
|
注意此处定义的是函数【def index(req):】 index.html 1 2 3 4 5 6 7 8 9 10 11 12 13 |
= 'en' >
= 'UTF-8' >
index< / title>
< / head>
< input type = 'text' name = 'A' / >
< input type = 'submit' name = 'b' value = '提交' / >
< / form>
< / body>
< / html>
|
上面就是FBV的使用。 二、CBVCBV(class base views) 就是在视图里使用类处理请求。 将上述代码中的urls.py 修改为如下: 1 2 3 4 5 6 | from mytest import views
urlpatterns = [
# url(r‘^index/‘, views.index),
url(r‘^index / ‘, views.Index.as_view()),
]
|
注:url(r‘^index/‘, views.Index.as_view()), 是固定用法。 将上述代码中的views.py 修改为如下: 1 2 3 4 5 6 7 8 9 10 11 | from django.views import View
class Index(View):
def get( self , req):
print (‘method is :‘ + req.method)
return render(req, ‘index.html‘)
def post( self , req):
print (‘method is :‘ + req.method)
return render(req, ‘index.html‘)
|
注:类要继承 View ,类中函数名必须小写。 两种方式没有优劣,都可以使用。 django中的FBV和CBV 标签:base text onf div spa 2种 inpu site .py 原文:http://www.cnblogs.com/wumingxiaoyao/p/6513981.html
|