cursor.execute('SELECT * FROM account WHERE username = %s AND password = %s', (username, password))执行后数据库数据未更新
时间: 2024-02-03 19:02:02 浏览: 25
`cursor.execute()`方法只会执行SQL语句,不会自动提交更改到数据库。如果你想要更新数据库,需要在执行完SQL语句后手动调用`connection.commit()`方法提交更改,其中`connection`是你的数据库连接对象。
示例代码:
```
cursor.execute('SELECT * FROM account WHERE username = %s AND password = %s', (username, password))
connection.commit() # 提交更改到数据库
```
如果你希望在执行SQL语句时自动提交更改到数据库,可以在创建数据库连接对象时指定`autocommit=True`参数。
示例代码:
```
import psycopg2
connection = psycopg2.connect(
host='your_host',
port=5432,
user='your_user',
password='your_password',
database='your_database',
autocommit=True # 自动提交更改到数据库
)
cursor = connection.cursor()
cursor.execute('SELECT * FROM account WHERE username = %s AND password = %s', (username, password))
```
相关问题
再结合上面代码,在xjdz包里,创建一个Account类,用来存储链接mysql数据库,用来实现登录注册功能,库名为oqcwxjdz,user表,有那么,和password两列
好的,下面是一个简单的Account类的代码,用于连接到MySQL数据库,并实现基本的登录和注册功能。请注意,这只是一个示例代码,您需要根据您的具体情况进行适当的修改:
```python
import mysql.connector
class Account:
def __init__(self):
self.db = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="oqcwxjdz"
)
self.cursor = self.db.cursor()
def login(self, username, password):
sql = "SELECT * FROM user WHERE username = %s AND password = %s"
val = (username, password)
self.cursor.execute(sql, val)
result = self.cursor.fetchone()
if result:
print("Login successful!")
else:
print("Invalid username or password.")
def register(self, username, password):
sql = "INSERT INTO user (username, password) VALUES (%s, %s)"
val = (username, password)
try:
self.cursor.execute(sql, val)
self.db.commit()
print("Registration successful!")
except:
self.db.rollback()
print("Registration failed.")
```
在上面的代码中,我们使用`mysql.connector`模块来连接到MySQL数据库。在构造函数中,我们传递了数据库连接参数,包括主机名、用户名、密码和数据库名。我们还创建了一个游标对象,以便执行SQL查询。
类中的`login`方法用于验证用户的登录凭据。我们使用`SELECT`查询从数据库中检索用户名和密码,如果找到匹配的记录,则登录成功。否则,我们会输出错误消息。
`register`方法用于注册新用户。我们使用`INSERT INTO`语句将新用户的用户名和密码插入到`user`表中。如果插入操作成功,则注册成功,否则输出错误消息。
flask框架和pgsql数据库生成登录,查询atm代码
好的,下面是flask框架和pgsql数据库生成登录,查询ATM代码的示例:
```python
# 导入需要的模块
from flask import Flask, request, jsonify
import psycopg2
# 初始化 Flask 应用
app = Flask(__name__)
# 定义 PostgreSQL 数据库连接参数
db_params = {
"host": "localhost",
"database": "atm",
"user": "postgres",
"password": "postgres"
}
# 处理登录请求
@app.route("/login", methods=["POST"])
def login():
# 获取请求参数
username = request.json.get("username")
password = request.json.get("password")
# 连接 PostgreSQL 数据库
conn = psycopg2.connect(**db_params)
cur = conn.cursor()
# 查询用户信息
cur.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))
user = cur.fetchone()
# 关闭连接
cur.close()
conn.close()
# 判断用户信息是否存在
if user:
return jsonify({"success": True, "msg": "登录成功"})
else:
return jsonify({"success": False, "msg": "用户名或密码错误"})
# 处理查询余额请求
@app.route("/balance", methods=["POST"])
def balance():
# 获取请求参数
account = request.json.get("account")
# 连接 PostgreSQL 数据库
conn = psycopg2.connect(**db_params)
cur = conn.cursor()
# 查询账户余额
cur.execute("SELECT balance FROM accounts WHERE account = %s", (account,))
balance = cur.fetchone()
# 关闭连接
cur.close()
conn.close()
# 判断账户余额是否存在
if balance:
return jsonify({"success": True, "balance": balance[0]})
else:
return jsonify({"success": False, "msg": "账户不存在"})
# 启动 Flask 应用
if __name__ == "__main__":
app.run()
```
上述代码演示了如何使用 Flask 框架和 psycopg2 库连接 PostgreSQL 数据库,并实现了登录和查询余额功能。需要注意的是,这里的代码仅为示例,实际应用中需要根据具体需求进行修改和优化。