数据库login.py和register.py错误显示404文件未找到并且不起作用

问题描述 投票:0回答:1

我想连接到数据库并进行正常的登录和注册过程

  • 注册的详细信息应存储在 data.db 中,并且可以通过登录进行检索以用于登录目的,这就是我想要的,但由于我对所有数据库和内容都是新手,所以有点难

This is Directories for all

这是我的注册 html -

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Signup</title>
    <link rel="stylesheet" href="style_signup.css">
</head>

<body>
    <header>
        <h1 class="logo">Jigoku</h1>
        <nav class="navigation">
            <a href="../index.html">Home</a>
            <a href="../About/about.html">About</a>
            <a href="../Download/download.html">Download</a>
            <a href="" class="active">Signup</a>
        </nav>
    </header>

    <section>
        <img src="/signup/background.jpg" class="back">
    </section>

    <div class="wrapper">
        <div class="form-box">
            <h2>Register</h2>
            <form action="/signup/Register/register.py" method="post">
                <div class="input-box">
                    <span class="icon"><ion-icon name="Person"></ion-icon></span>
                    <input type="text" name="username" required>
                    <label>Username</label>
                </div>
                <div class="input-box">
                    <span class="icon"><ion-icon name="mail"></ion-icon></span>
                    <input type="email" name="email" required>
                    <label>Email</label>
                </div>
                <div class="input-box">
                    <input type="password" name="password" id="password" required>
                    <label for="password">Password</label>
                    <ion-icon name="eye" class="icon" onclick="togglePasswordVisibility()"></ion-icon>
                </div>                
                <div class="remember-forget">
                    <label><input type="checkbox" name="agree">Agree to T&Cs</label>
                    <a href="../../About/about.html">T&cs Documentations</a>
                </div>
                <button type="submit" class="btn">Register</button>
                <div class="login-register">
                    <p>Already have an account?<a href="../index_signup.html" class="register-link">Login</a></p>
                </div>
            </form>
        </div>
    </div>

    <div class="wrapper">
        <div class="form-box"></div>
    </div>
    <script src="script_signup.js"></script>
    <script type="module" src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>
    <script nomodule src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>
</body>

</html>

这是我的登录 html -

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login</title>
    <link rel="stylesheet" href="style_signup.css">
</head>

<body>
    <header>
        <h1 class="logo">Jigoku</h1>
        <nav class="navigation">
            <a href="../index.html">Home</a>
            <a href="../About/about.html">About</a>
            <a href="../Download/download.html">Download</a>
            <a href="" class="active">Login</a>
        </nav>
    </header>

    <section>
        <img src="/signup/background.jpg" class="back">
    </section>

    <div class="wrapper">
        <div class="form-box">
            <h2>Login</h2>
            <form action="/signup/login.py" method="post">
                <div class="input-box">
                    <span class="icon"><ion-icon name="mail"></ion-icon></span>
                    <input type="email" name="email" required>
                    <label>Email</label>
                </div>
                <div class="input-box">
                    <input type="password" name="password" id="password" required>
                    <label for="password">Password</label>
                    <ion-icon name="eye" class="icon" onclick="togglePasswordVisibility()"></ion-icon>
                </div>                
                <div class="remember-forget">
                    <label><input type="checkbox" name="remember">Remember me</label>
                    <a href="#">Forgot password?</a>
                </div>
                <button type="submit" class="btn">Login</button>
                <div class="login-register">
                    <p>Don't have an account?<a href="./Register/index_signup.html" class="register-link">Register</a></p>
                </div>
            </form>
        </div>
    </div>

    <div class="wrapper">
        <div class="form-box"></div>
    </div>
    <script src="script_signup.js"></script>
    <script type="module" src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>
    <script nomodule src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>
</body>

</html>

这是我的register.py 文件

from flask import Flask, render_template, request, jsonify
import sqlite3

app = Flask(__name__)

@app.route('/signup/Register/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form['username']
        email = request.form['email']
        password = request.form['password']

        conn = sqlite3.connect('../users.db')
        cursor = conn.cursor()

        try:
            cursor.execute('INSERT INTO users (username, email, password) VALUES (?, ?, ?)', (username, email, password))
            conn.commit()
            conn.close()
            return jsonify({'success': True, 'message': 'Registration successful'})
        except sqlite3.IntegrityError:
            conn.close()
            return jsonify({'success': False, 'message': 'Username or email already exists'})
    else:
        return render_template('signup/Register/index_signup.html')

if __name__ == '__main__':
    app.run(debug=True)

和login.py文件

from flask import Flask, request, jsonify, redirect
import sqlite3

app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    email = request.form['email']
    password = request.form['password']

    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()

    cursor.execute('SELECT * FROM users WHERE email=? AND password=?', (email, password))
    user = cursor.fetchone()

    conn.close()

    if user:
        # Redirect to a success page
        return redirect('/success')
    else:
        # Redirect to a failure page
        return redirect('/failure')

if __name__ == '__main__':
    app.run(debug=True)

我尝试运行python文件,在询问GPT后它给出了404文件未找到的错误,它说很可能是@app.route(/register),问题出在哪里,但我是flask的新手,不知道是什么这个

python html database flask
1个回答
0
投票

你需要了解路由、url等基本概念

我建议查看flask官方文档中的教程。 (https://flask.palletsprojects.com/en/3.0.x/tutorial/

我会处理您想要做的事情,例如通过提交表单进行经典用户注册和登录。

这不是您问题的直接答案。 然而,它最终会得到回报。 不要认为阅读文档是浪费时间!!

© www.soinside.com 2019 - 2024. All rights reserved.