如何改进我的烧瓶应用程序处理多个请求?

时间:2021-07-27 01:33:35

标签: python flask

我对堆栈溢出问题和用 Flask 构建网络应用程序还很陌生,所以如果我说的不正确,我提前道歉。

我正在构建一个处理安排约会的 Flask Web 应用程序,自然而然我正在使用 3rd 方库/包装器来进行 API 调用和处理数据库查询 (sqlite)。目前,我的应用程序不使用任何类型的异步代码。我开始考虑多个用户尝试登录或预约的场景,都涉及数据库查询和 API 调用,以及我的应用程序是否会阻塞。鉴于它都是同步的,如果多个用户确实尝试登录并预订约会,它会在处理其他用户请求时阻止某些用户,还是全部独立于我的烧瓶应用程序并依赖于运行该应用程序的 WSGI 服务器?关于如何在处理多个请求方面提高应用性能的任何提示?

多个用户同时尝试访问的示例路径:

...

@app.route('/signup/')
def signup():
    # has a form that takes user input and submits it for processing in process_signup()
    return render_template('signup.html')


@app.route('/process_signup/', methods=['POST'])
def process_signup():
    form = request.forms
    username = form['username']
    password = form['password']

    # insert values into customer db in a synchronous fashion 
    db = db() #gets the database
    cursor = db.execute('insert into customers (username, password) values (?,?)', [username, password])
    db.commit()

    #send out a verification email using email api without any async
    email_new_customer()

    return redirect(url_for('signin'))

注意:我读到异步处理 db 查询和 api 调用会更好,但不确定从哪里开始或与flask兼容的库类型会帮助我实现这一点

再次感谢您的帮助,我可能对这一切的运作方式有很大的误解,因为我对此非常陌生,所以我深表歉意。

0 个答案:

没有答案