m0_69693998 2024-06-13 00:51 采纳率: 45.2%
浏览 1

为什么前端放回的数据不能写入到数据库

为什么前端放回的数据不能写入到数据库,这个报错是什么意思

img


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>


  • 写回答

4条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    这个报错的意思是前端请求的路径参数不正确,需要将URL中的/static改为实际的静态文件路径。例如,如果动态数据在 static 文件夹下,那么前端应该通过路径参数 /static/user 来访问数据。

    下面是针对这个问题的解决步骤:

    1. 使用 request.args.get('static') 获取静态文件的URL。
    2. 确保当前请求的URL对应的URL路径是正确的。可以通过查看浏览器开发者工具或者服务器日志来获取错误信息。
    3. 将正确的URL参数添加到URL中。

    下面是一个示例代码,用于解决这个问题:

    @app.route('/static', methods=['GET'])
    def static():
        user = User(name=request.args.get('name'), account=request.args.get('account'), password=request.args.get('password'))
        db.session.add(user)
    
        return {"message": "用户已添加"}
    

    在这个例子中,如果客户端向 /static/user 发送请求,将会执行 add 函数,并将返回的结果作为 JSON 格式发送给客户端。这样可以确保前端知道如何读取和处理数据库中的数据。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月13日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见