Msy20070905 2024-07-18 17:59 采纳率: 21.2%
浏览 3

构建网页后报404的错误

在pycharm中进行以下代码,但总是构建网页后报404的错误


from flask import Flask, render_template,request
# 后续可以css美化

app = Flask(__name__)

@app.route('/show/info')
def index():
    return render_template('index.html')

@app.route('/show/register')
def get_self():
    return render_template('register.html')

@app.route('/register',methods=['GET','POST'])
def register():
    if request.method():
        return render_template('register.html')
    else:
        user = request.form.get('user')
        pwd = request.form.get('pwd')
        gender = request.form.get('gender')
        age = request.form.get('age')
        more = request.form.getlist('more')

        print(user,pwd,gender,age,more)
        return '注册成功/successfully register'

#get way
@app.route('/login', methods=['GET','POST'])
def do_register():
    if request.method():
        return render_template('login.html')
    else:
        return render_template('interactive.html')
if __name__ =='__main__':
    app.run()
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-07-18 18:04
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    你的代码中确实存在一些问题,导致404错误和表单提交处理不当。以下是一些建议和修改后的代码:

    1. 解决404错误

    • 确保路由的路径正确。在你的代码中,@app.route('/show/info')@app.route('/show/register') 定义的路由路径是正确的,但你需要确保访问的 URL 与这些路径一致。
    • 确保模板文件名正确,并且模板文件位于 Flask 应用的 templates 文件夹中。

    2. 处理表单提交

    • register 函数中,使用 request.method == 'POST' 来确保只处理 POST 请求。
    • do_register 函数中,应该处理登录逻辑,而不是注册逻辑。

    以下是修改后的代码示例:

    from flask import Flask, render_template, request
    
    app = Flask(__name__)
    
    @app.route('/show/info')
    def index():
        return render_template('index.html')
    
    @app.route('/show/register')
    def get_self():
        return render_template('register.html')
    
    @app.route('/register', methods=['GET', 'POST'])
    def register():
        if request.method == 'POST':
            user = request.form.get('user')
            pwd = request.form.get('pwd')
            gender = request.form.get('gender')
            age = request.form.get('age')
            more = request.form.getlist('more')
    
            print(user, pwd, gender, age, more)
            return '注册成功/successfully register'
        return render_template('register.html')  # 确保在GET请求时也返回注册页面
    
    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            # 这里处理登录逻辑,获取表单数据
            user = request.form.get('user')
            password = request.form.get('password')
            # 进行登录验证
            if user == "admin" and password == "admin":  # 示例验证逻辑
                return '登录成功/Login successfully'
            else:
                return '登录失败/Login failed'
        return render_template('login.html')
    
    if __name__ == '__main__':
        app.run(debug=True)  # 开启调试模式,有助于调试
    

    其他注意事项

    • 确保你的 templates 文件夹中存在 index.html, register.html, login.html, 和 interactive.html 这些模板文件。
    • 确保 Flask 应用的根目录正确,通常应该是包含你的 Python 脚本的文件夹。
    • 检查 Flask 应用是否在正确的端口上运行,默认是 5000 端口。

    通过这些修改,你的 Flask 应用应该能够正确处理路由和表单提交。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月18日

悬赏问题

  • ¥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局部变量对蓝图不可见