首页 > 解决方案 > 使用烧瓶提交表单后出现“未找到”错误

问题描述

我是烧瓶的初学者。我正在尝试填写此网站中的表格,但提交后给我 404 not found 错误。我也查看了其他 stackoverflow 的答案,但没有一个对我有帮助。

这是html代码

<form id="contactForm" data-sb-form-api-token="API_TOKEN" action="/edit/{{post.sno}}" method="post">
                                <div class="form-floating">
                                    <input value="{{post.title}}" class="form-control" id="title" type="text" placeholder="Enter your name..." data-sb-validations="required" name="title"/>
                                    <label for="title">Title</label>
                                    <div class="invalid-feedback" data-sb-feedback="name:required">A name is required.</div>
                                </div>
                                <div class="form-floating">
                                    <input value="{{post.slug}}" class="form-control" id="slug" type="text" placeholder="Enter your email..." data-sb-validations="required,email" name="slug"/>
                                    <label for="slug">Slug</label>
                                    <div class="invalid-feedback" data-sb-feedback="email:required">An email is required.</div>
                                    <div class="invalid-feedback" data-sb-feedback="email:email">Email is not valid.</div>
                                </div>
                                <div class="form-floating">
                                    <input value="{{post.content}}" class="form-control" id="content" type="tel" placeholder="Enter your phone number..." data-sb-validations="required" name="content"/>
                                    <label for="content">Content</label>
                                    <div class="invalid-feedback" data-sb-feedback="phone:required">A phone number is required.</div>
                                </div>
                                <div class="form-floating">
                                    <textarea value="{{post.date}}" class="form-control" id="date" placeholder="Enter your message here..." style="height: 12rem" data-sb-validations="required" name="date"></textarea>
                                    <label for="date">Date</label>
                                    <div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
                                </div>
                                <div class="form-floating">
                                    <input value="{{post.img_file}}" class="form-control" id="img_file" placeholder="Enter your message here..." style="height: 12rem" data-sb-validations="required" name="img_file"></input>
                                    <label for="img_file">Image file</label>
                                    <div class="invalid-feedback" data-sb-feedback="message:required">A message is required.</div>
                                </div>
                                <br />
                                <!-- Submit success message-->
                                <!---->
                                <!-- This is what your users will see when the form-->
                                <!-- has successfully submitted-->
                                <div class="d-none" id="submitSuccessMessage">
                                    <div class="text-center mb-3">
                                        <div class="fw-bolder">Form submission successful!</div>
                                        To activate this form, sign up at
                                        <br />
                                        <a href="https://startbootstrap.com/solution/contact-forms">https://startbootstrap.com/solution/contact-forms</a>
                                    </div>
                                </div>

这是烧瓶代码

class Posts(db.Model):
    '''
    sno, title, slug, content, date, img_file
    '''
    sno = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), unique=False, nullable=False)
    slug = db.Column(db.String(21), unique=True, nullable=False)
    content = db.Column(db.String(120), unique=False, nullable=False)
    date = db.Column(db.String(12), unique=False, nullable=False)
    img_file = db.Column(db.String(12), unique=False, nullable=True)

@app.route("/edit/<string:sno>", methods=['GET', 'POST'])
def edit(sno):
    if "user" in session and session['user'] == params['admin_user']:
        if request.method == "POST":
            box_title = request.form.get('title')
            tline = request.form.get('tline')
            slug = request.form.get('slug')
            content = request.form.get('content')
            img_file = request.form.get('img_file')
            date = datetime.now()

            if sno == '0':
                post = Posts(title=box_title, slug=slug, content=content, tagline=tline, img_file=img_file, date=date)
                db.session.add(post)
                db.session.commit()
            else:
                post = Posts.query.filter_by(sno=sno).first()
                post.box_title = box_title
                post.tline = tline
                post.slug = slug
                post.content = content
                post.img_file = img_file
                post.date = date
                db.session.commit()
                return redirect('/edit/' + sno)

    post = Posts.query.filter_by(sno=sno).first()
    return render_template('edit.html', params=params, post=post)

在执行此编辑页面之前,代码工作正常,但在提交此表单后,它向我显示 404 not found 错误:

标签: htmlflask-sqlalchemy

解决方案


推荐阅读