from app import app
import json
from flask.views import MethodView
from flask import request
from flask import url_for
from modules.auth import authenticate
@app.route('/')
def index():
return app.send_static_file('index.html')
class Authentication(object):
def __init__(self, request):
form_data = request.form
if form_data.get('producer_apikey', None):
self.producer_data = authenticate(
form_data['producer_username'], form_data['producer_apikey'], form_data['region'])
if form_data.get('consumer_apikey', None):
self.consumer_data = authenticate(
form_data['consumer_username'], form_data['consumer_apikey'], form_data['region'])
def do_check(self):
if self.producer_data.get("msg", None):
return json.dumps
{ "message" : self.producer_data["msg"] })
if self.consumer_data.get("msg", None):
return json.dumps(
{ "message" : self.consumer_data["msg"] })
class ImageShareForm(MethodView, Authentication):
def __init__(self):
Authentication.__init__(self, request)
def get(self):
pass
def post(self):
self.do_check()
app.add_url_rule('/imageshareform', view_func=ImageShareForm.as_view('imageshareform'))
在上面的代码中,当我运行self.do_check()
时,条件不会返回浏览器。我想在类Authentication()
中保留此函数,因为我将在其他将要编写的类中重复使用类继承。
答案 0 :(得分:1)
这是因为Python希望您明确声明要返回的内容:
def one():
return 1
def two():
return 2
def how_would_this_work():
one()
two()
how_would_this_work() # returns None
def this_works():
one()
return two()
this_works() # returns 2
您需要在return
方法中添加明确的post
:
def post(self):
return self.do_check()