【问题标题】:Internal servor error response from the flask application来自烧瓶应用程序的内部服务器错误响应
【发布时间】:2020-06-25 05:19:50
【问题描述】:

您好,我正在编写以下代码来验证用户名和密码,并在给定凭据有效时执行输入方法代码。但我收到内部服务器错误。有人可以帮忙解决它出错的地方吗?如果凭据匹配,我的目标是执行一段代码。

#import statements 
import Example
import Example2
import logging
from flask import Flask
from flask_httpauth import HTTPBasicAuth
from werkzeug.security import generate_password_hash, check_password_hash

#Creating the logge r variables and intialization 
log=logging.getLogger()
format = "%(asctime)s %(message)s"
logging.basicConfig(format=format, level=logging.INFO, filename='Job_history_logs.log')

#Starting the Flask application 
app = Flask(__name__)
auth = HTTPBasicAuth() 

#users
users = {
    "john": generate_password_hash("hello"),
    "susan": generate_password_hash("bye")
}

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
@auth.login_required
@auth.verify_password    
def verify_password(username, password):
    log.info("Username provided is "+ str(username))
    log.info("password provided is "+ str(password))
    if username in users:
        log.info("Hash comparision is "+ str(check_password_hash(users.get(username), password)))
        if check_password_hash(users.get(username), password):
            return True

@auth.error_handler
def unauthorized():
    return make_response(jsonify({'error': 'Unauthorized access'}), 401)

def entry():
    result1 = Example.external()
    result2 = Example2.external2()
    log.info("result1 is "+str(result1))
    log.info(str(result2))
    return str(result1)+"...."+str(result2)

if __name__ == '__main__':
    app.run(host='0.0.0.0')

【问题讨论】:

  • 与谷歌云有什么关系?你的代码在本地工作吗?您是否仅在 GCP 上出现错误?
  • 嗨@guillaumeblaquiere 我正在使用计算引擎实例中的烧瓶测试此代码
  • 你能提供错误堆栈跟踪吗?另外,此应用程序是否在您的本地环境中运行?

标签: flask google-cloud-platform flask-sqlalchemy flask-restful flask-login


【解决方案1】:

我能够通过简单地更改@auth_decorators 的使用顺序来运行这个应用程序。

工作代码

#import statements
import logging
from external import star_matrix
from flask_httpauth import HTTPBasicAuth
from flask import Flask
from werkzeug.security import generate_password_hash, check_password_hash

#Creating an object 
log=logging.getLogger() 
format = "%(asctime)s %(message)s"
logging.basicConfig(format=format, level=logging.INFO, filename='Job_history_logs.log')

app = Flask(__name__)
auth = HTTPBasicAuth()

#users
users = {
    "john": generate_password_hash("hello"),
    "susan": generate_password_hash("bye")
}

@auth.verify_password 
def verify_password(username, password ):
    log.info("Username provided is "+ str(username))
    log.info("password provided is "+ str(password))
    if username in users:
        log.info("Hash comparision is "+ str(check_password_hash(users.get(username), password)))
        if check_password_hash(users.get(username), password):
            return True 

@app.route('/todo/api/v1.0/tasks', methods=['GET'])
@auth.login_required
def entry():
    log.info('inside the entry function')
    result = star_matrix.external()
    return result 

if __name__ == '__main__':
    app.run(host='0.0.0.0')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-06
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多