gpt4 book ai didi

python - 如何使用 mysql 验证 flask/python 中的凭据?

转载 作者:行者123 更新时间:2023-11-30 21:57:35 27 4
gpt4 key购买 nike

登录的 Flask/python 验证不适用于我的 mysql,我正在搜索谷歌和文档,我看到了一些关于堆栈溢出的问题,但还没有得到回答。

from flask import Flask, render_template, flash, request, url_for, redirect, session
from content_management import Content

#form validations
from wtforms import Form, BooleanField, TextField, PasswordField, validators
#to encrypt the password
from passlib.hash import sha256_crypt
#for SQL injection
from MySQLdb import escape_string as thwart
import gc
from functools import wraps
from mysql_connect import connection

app = Flask(__name__)

@app.route('/login/', methods=['GET','POST'])
def login_page():
error = ''
try:
c, conn = connection()
if request.method == "POST":
d = c.execute("SELECT * FROM clients WHERE email = (%s)", (thwart(request.form['email']),))
d = c.fetchone()[2]

if request.form['password'] == d:
email = request.form['email']
c.execute("SELECT * FROM clients WHERE email = (%s)", (thwart(email),))
clients_table = c.fetchall()
clientcid = clients_table[0]
flash(clientcid)
phone = clients_table[1]
rating = clients_table[4]
conn.commit()

c.execute("SELECT * FROM cpersonals WHERE cid = (%s)", (clientcid,))
cpersonals_table = c.fetchall()
first_name = cpersonals_table[1]
last_name = cpersonals_table[2]
address = cpersonals_table[3]
czip = cpersonals_table[4]
reg_date = cpersonals_table[5]
conn.commit()

c.close()
conn.close()

session['logged_in'] = 'client'
session['clientcid'] = clientcid
session['email'] = email
session['phone'] = phone
session['rating'] = rating
session['first_name'] = first_name
session['last_name'] = last_name
session['address'] = address
session['czip'] = czip
session['reg_date'] = reg_date
flash("You are now logged in.")
return redirect(url_for("dashborad"))

else:
error = "Invalid credentials, try again."

return render_template("login.html")

有没有一种简单的方法可以在没有框架的情况下在 MySQL 中验证凭据

最佳答案

这不是一个完整的答案(给出了您应该如何解决问题的代码示例),而是一些建议:

您正在将 Flask 与数据库一起使用,但未使用 Flask 扩展,例如 flask-sqlalchemmy , 这是一个制作 SQLAlchemy 的库(数据库工具包)更容易与 python 一起使用。用类似 flask-login 的东西(处理登录和注销以及常见的“记住我”功能),您尝试做的事情非常简单。如果您想要一个示例文件,通过使用 flask-sqlalchemy 和 flask-login 检查数据库中的凭据来处理用户登录,我可以制作一个,但是有很多使用这些工具的应用程序示例。

使用像我提到的那样的数据库工具包还有很多其他优点,其中最少的是数据库系统的可移植性(使用 sqlalchemy 的代码通常可以在多个数据库后端上运行,如 mysql、postgreSQL、sqlite 等)。

关于python - 如何使用 mysql 验证 flask/python 中的凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com