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'))