购物车网站max+

本文使用创作助手。

以下是一个使用Python和Flask框架实现的简单网站代码,用于处理用户的注册和登录逻辑,并将注册信息保存在SQLite数据库中:

from flask import Flask, render_template, request, redirect, session, flash
import re
import sqlite3

app = Flask(__name__)
app.secret_key = 'secret_key'

# 创建数据库连接
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)')
conn.commit()


@app.route('/')
def index():
    if 'username' in session:
        return redirect('/shopping-website')
    else:
        return redirect('/login')


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

        # 在数据库中查找匹配的用户名和密码
        cursor.execute('SELECT * FROM users WHERE username=? AND password=?', (username, password))
        user = cursor.fetchone()

        if user:
            session['username'] = username
            return redirect('/shopping-website')
        else:
            flash('登录失败,请检查用户名和密码')

    return render_template('login.html')


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

        # 使用正则表达式验证用户名和密码格式
        username_pattern = re.compile(r'^[a-zA-Z0-9_-]{3,16}$')
        password_pattern = re.compile(r'^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$')

        if not username_pattern.match(username):
            flash('用户名格式错误,请输入3到16位的字母、数字、下划线或破折号')
        elif not password_pattern.match(password):
            flash('密码格式错误,请输入至少8位的包含至少一个大写字母、一个小写字母和一个数字的密码')
        else:
            # 将注册信息插入数据库
            cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
            conn.commit()
            flash('注册成功,请登录')
            return redirect('/login')

    return render_template('register.html')


@app.route('/shopping-website')
def shopping_website():
    if 'username' in session:
        return render_template('shopping_website.html')
    else:
        return redirect('/login')


@app.route('/logout')
def logout():
    session.pop('username', None)
    flash('已退出登录')
    return redirect('/login')


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

在上述代码中,我们使用Flask框架创建了一个简单的应用,并使用SQLite数据库来存储用户注册信息。页面模板被放置在templates文件夹中(需要创建该文件夹并将页面模板放入其中)。在/login/register路由中,我们使用正则表达式验证用户名和密码的格式。如果验证通过,将用户信息插入数据库;否则,显示相应的错误消息。在/shopping-website路由中,只有在用户登录后才能访问购物网站的内容。可以使用{{ session.username }}在页面模板中显示当前登录的用户名。

注意:在实际环境中,为了更好的安全性,建议使用哈希算法对用户密码进行加密存储。此示例仅为演示目的,未进行加密处理。

以下是更新的index.html文件,添加了用于储存用户注册信息的文本文档,并使用正则表达式验证用户名和密码的格式:




    登录/注册
    


    

    

    

注册

购物网站

在这个示例中,我们使用fetch函数来读取文本文档中的用户注册信息,并使用正则表达式对用户名和密码的格式进行验证。如果用户名和密码符合要求,则将注册信息储存至文本文档,并提示注册成功。如果登录时输入的用户名和密码与文本文档中的信息匹配,则显示购物网站内容。

请注意,这只是一个简单的示例,实际上,您可能需要使用后端服务器来处理用户注册和登录的逻辑,并将用户信息储存在数据库中。此示例中使用的文本文档只是为了演示目的。

你可能感兴趣的:(oracle,数据库)