Twenty-four: view the use of class-based view of the scheduling method

 

View scheduling method based flask.view.MethodView achieved, depending on the request method, the execution class corresponding to the view method, as long as the method can be defined request: get, post, put, delete ···

Import the Flask Flask from, the render_template, views 
App = the Flask (__ name__)
class the LoginView (views.MethodView):
DEF get (Self): # get performing this method requests
return 'this is the return value of get requests'
DEF POST (Self) : # this method performs post request
return 'this is the return value of the post request'
app.add_url_rule ( '/ Login /', view_func = LoginView.as_view ( 'Login'))

 

Take for login

from flask import Flask, render_template, views, request
app = Flask(__name__)
class LoginView(views.MethodView):
def get(self, error=None):
return render_template('login.html', error=error)
def post(self):
username = request.form.get('username')
password = request.form.get('password')
return '登录成功' if username == 'user' and password == 'password' else self.get(error='用户名或密码错误')
app.add_url_rule('/login/', view_func=LoginView.as_view('login'))

 

Templates can also be rendered individually pulled out

from flask import Flask, render_template, views, request
app = Flask(__name__)
class LoginView(views.MethodView):
def __render(self, error=None):
return render_template('login.html', error=error)
def get(self):
return self.__render()
def post(self):
username = request.form.get('username')
password = request.form.get('password')
return '登录成功' if username == 'user' and password == 'password' else self.__render(error='用户名或密码错误')
app.add_url_rule('/login/', view_func=LoginView.as_view('login'))

Guess you like

Origin www.cnblogs.com/zhongyehai/p/11795456.html