为什么前端放回的数据不能写入到数据库,这个报错是什么意思
from flask import Flask,request,render_template
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
app = Flask(__name__)
#MYSQL所在的主机名
HOSTNAME ="127.0.0.1"
#MYSQL监听的端口号,默认3306
PORT = 3306
#连接MYSQL的用户名,读者用自己设置的
USERNAME = "root"
#连接MySQL的密码,读者用自己的
PASSWORD = "123456"
# MYSOL上创建的数据库名称
DATABASE = "user"
app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8'
#在app.config中设置好连接数据库的信息,然后使用SQLAlchemy(app)创建一个db对象
class User(db.Model):
__tablename__ = 'ck_user' #设置表名
#主键 (反正false默认false) 自动增长(反正false默认false)
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(50), nullable=False)
# 设置检测重复项(反正false 默认false) 设置不会空(反正false默认false)
account = db.Column(db.String(100), unique=True, nullable=True)
password = db.Column(db.String(100), nullable=False)
with app.app_context():
db.create_all()
@app.route('/static')
def static_demo():
return render_template('static.html')
@app.route('/add')
def add():
if request.method == 'POST':
user = User(name=request.args.get('name'), account=request.args.get('account'), password=request.args.get('password'))
db.session.add(user)
return "写入成功"
else:
return render_template('mysql.html')
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Demo</title>
</head>
<body>
<form method="post" action="/add">
<input type="text" name="name" placeholder="name">
<input type="number" name="account" placeholder="account">
<input type="password" name="password" placeholder="password">
<input type="submit" name="submit">
</form>
</body>
</html>