我对堆栈溢出问题和用 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兼容的库类型会帮助我实现这一点。
再次感谢您的帮助,我可能对这一切的运作方式有很大的误解,因为我对此非常陌生,所以我深表歉意。