带有Flask的Python Web开发的入门指南

目录

简介:

python源代码:

代码说明:

login页面源码:

index页面源码:

运行效果如下:


简介:

在本文中,我们将介绍如何使用Python以及其中一个流行的Web框架Flask来编写简单有趣的Web应用程序。

主要介绍了如何使用 Python 和 Flask 框架来构建一个简单的登录网站。该网站具有用户注册、登录等基本功能,使用数组来存储用户信息。用户可以在登录后访问受保护的页面。同时,博客还介绍了如何使用 Jinja2 模板引擎来渲染 HTML 页面,以及如何使用 Flask-WTF 扩展来处理表单数据和验证用户输入。这篇博客旨在帮助初学者了解 Flask 框架的基本用法,并通过实例学习如何构建一个简单但实用的 web 应用程序。

python源代码:

from flask import Flask, render_template, request, redirect, url_for
from flask import Flask, render_template, request, session

app = Flask(__name__)

# 假设已经有一个用户数据库
users = {
    "alice": "password1",
    "bob": "password2",
    "charlie": "password3"
}

# 定义登录页面的路由和方法
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 获取表单中提交的用户名和密码
        username = request.form['username']
        password = request.form['password']
        
        # 检查用户是否存在并且密码是否正确
        if username in users and users[username] == password:
            # 如果正确,将用户信息保存到 session 中,并重定向到主页
            session['username'] = username
            return redirect(url_for('index'))
        else:
            # 如果错误,返回一个错误信息
            error = '用户名或密码错误,请重新输入'
            return render_template('login.html', error=error)
    else:
        # 如果是 GET 请求,返回登录页面模板
        return render_template('login.html')

# 定义主页的路由和方法
@app.route('/')
def index():
    # 检查用户是否已经登录,如果没有则重定向到登录页面
    if 'username' not in session:
        return redirect(url_for('login'))
    # 如果已经登录,显示主页
    return render_template('index.html', username=session['username'])
@app.route('/logout', methods=['POST'])
def logout():
    session.pop('username', None)
    return redirect(url_for('login'))

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

代码说明:

在这个示例中,我们使用 Flask 提供的 render_template 函数来渲染 HTML 模板,使用 request 对象获取用户提交的表单数据,使用 redirecturl_for 函数进行页面重定向,使用 session 对象保存用户信息。需要注意的是,我们需要设置一个 secret_key 来启用 Flask 的 session 功能。你需要在项目根目录下创建一个名为 templates 的文件夹,并在其中创建 login.htmlindex.html 两个 HTML 模板文件,分别用来显示登录页面和主页。

 注意:需要在py的同级路径下创建templates文件夹,将该文件夹下创建以下两个html文件。

login页面源码:

<!DOCTYPE html>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
    <h1>Login</h1>
    <form method="POST" action="{{ url_for('login') }}">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">Password:</label>
        <input type="password" id="password" name="password"><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

index页面源码:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Index Page</title>
</head>

<body>
  <h1>Welcome, {{ username }}!</h1>
  <form method="post" action="{{ url_for('logout') }}">
    <button type="submit" class="btn btn-primary">退出登录</button>
  </form>

</body>

</html>

运行效果如下:

服务端:

 web端:

登录:

 首页:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值