目录

python flask 使用教程 快速搭建一个 Web 应用

目录

        • [一、Flask 简介](#一、Flask 简介)
        • [二、Flask 安装](#二、Flask 安装)
        • [三、创建一个简单的 Flask 应用](#三、创建一个简单的 Flask 应用)
        • [四、Flask 路由与视图](#四、Flask 路由与视图)
        • 五、接收和处理用户输入
        • [六、模板引擎 Jinja2](#六、模板引擎 Jinja2)
        • [七、Flask 与数据库](#七、Flask 与数据库)
        • 八、总结
一、Flask 简介

Flask 是一个轻量级的 Python Web 框架,旨在帮助开发者快速搭建 Web 应用。相比于 Django 等重量级框架,Flask 更加简洁和灵活,非常适合用于小型 Web 项目的开发,甚至可以用于构建 RESTful API。

Flask 的核心特性包括:

  • 简洁的 API:Flask 使用简单且直观的 API,开发者可以快速上手。
  • 灵活性高:Flask 不会过多限制开发者的选择,它给开发者提供了更多的自由度。
  • 扩展性:Flask 支持丰富的扩展,满足数据库、表单验证、用户认证等多种需求。

二、Flask 安装

要使用 Flask,首先需要安装 Flask 库。打开命令行,使用 pip 安装:

bash 复制代码
pip install flask

三、创建一个简单的 Flask 应用
  1. 创建项目文件夹

    假设我们要创建一个名为 flask_demo 的项目,首先创建一个文件夹:

    bash 复制代码
    mkdir flask_demo
    cd flask_demo
  2. 创建 Flask 应用

    flask_demo 文件夹下,创建一个 Python 文件 app.py,并在其中编写以下代码:

    python 复制代码
    from flask import Flask
    
    # 创建 Flask 实例
    app = Flask(__name__)
    
    # 定义路由和视图函数
    @app.route('/')
    def hello_world():
        return 'Hello, World!'
    
    # 启动应用
    if __name__ == '__main__':
        app.run(debug=True)

    解释:

    • Flask(__name__):创建 Flask 应用实例,__name__ 参数告诉 Flask 应用在哪个模块中。
    • @app.route('/'):装饰器,表示访问根 URL 时执行 hello_world 函数。
    • app.run(debug=True):启动 Flask 应用并开启调试模式,方便开发时查看错误信息。
  3. 运行应用

    在命令行中执行以下命令启动 Flask 应用:

    bash 复制代码
    python app.py

    启动成功后,访问浏览器,输入 http://127.0.0.1:5000/,你应该能够看到浏览器显示"Hello, World!"。


四、Flask 路由与视图

在 Flask 中,路由是通过装饰器 @app.route() 来定义的,它将 URL 路径与视图函数(即处理请求的函数)进行关联。

例如,我们可以为不同的路径定义不同的视图函数:

python 复制代码
@app.route('/hello')
def hello():
    return 'Hello, Flask!'

@app.route('/goodbye')
def goodbye():
    return 'Goodbye, Flask!'

访问 http://127.0.0.1:5000/hello 会返回 "Hello, Flask!",而访问 http://127.0.0.1:5000/goodbye 会返回 "Goodbye, Flask!"。


五、接收和处理用户输入

Flask 允许你通过请求对象 (request) 获取用户输入数据。常见的有 GETPOST 请求。

  1. 处理 GET 请求

    默认情况下,Flask 使用 GET 方法处理请求。当你访问一个 URL 时,浏览器会发出一个 GET 请求。你可以通过 request.args 获取查询参数:

    python 复制代码
    from flask import request
    
    @app.route('/search')
    def search():
        query = request.args.get('q')
        return f'You searched for: {query}'

    访问 http://127.0.0.1:5000/search?q=Flask 会返回 "You searched for: Flask"。

  2. 处理 POST 请求

    如果你需要处理表单提交的数据,可以使用 POST 请求。下面是一个简单的表单提交示例:

    python 复制代码
    from flask import request, render_template
    
    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            username = request.form['username']
            password = request.form['password']
            return f'Username: {username}, Password: {password}'
        return render_template('login.html')

    这个视图函数处理 /login 路由,GET 请求会返回一个登录表单,POST 请求会返回提交的用户名和密码。


六、模板引擎 Jinja2

Flask 使用 Jinja2 作为模板引擎,用于动态渲染 HTML 页面。在模板中,可以使用变量和控制结构(如 iffor 等)来构建动态内容。

例如,创建一个模板 index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flask Template Example</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

然后在视图函数中传递 name 变量:

python 复制代码
from flask import render_template

@app.route('/greet')
def greet():
    return render_template('index.html', name='Flask User')

访问 http://127.0.0.1:5000/greet,你将看到 "Hello, Flask User!"。


七、Flask 与数据库

Flask 支持通过扩展(如 Flask-SQLAlchemy)来与数据库进行交互。SQLAlchemy 是一个强大的 ORM(对象关系映射)工具,可以将数据库表映射为 Python 类,并进行操作。

安装 Flask-SQLAlchemy:

bash 复制代码
pip install flask_sqlalchemy

然后,在 Flask 应用中配置数据库并使用 SQLAlchemy 进行数据操作:

python 复制代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(150), unique=True, nullable=False)

@app.route('/add_user')
def add_user():
    user = User(username='John Doe')
    db.session.add(user)
    db.session.commit()
    return 'User added successfully!'

八、总结

Flask 是一个非常灵活和轻量级的 Web 框架,适合用于快速开发 Web 应用和 API。它拥有简洁的 API,易于上手,而且可以通过丰富的扩展来实现更强大的功能。

在这篇博客中,我们介绍了如何安装 Flask、创建简单的 Web 应用、定义路由、处理用户输入、使用 Jinja2 模板引擎以及与数据库交互。

通过掌握 Flask 的基本用法,你可以开始构建更复杂的 Web 项目。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
OpenTiny社区9 分钟前
TinyPro 中后台管理系统使用指南——让页面搭建变得如此简单!
前端·vue.js·开源
我有一只臭臭15 分钟前
webpack配置解析
前端·webpack
我有一只臭臭19 分钟前
Vue中webpack的使用
前端·vue.js·webpack
niuniu_66630 分钟前
针对 Python 3.7.0,以下是 Selenium 版本的兼容性建议和安装步骤
开发语言·chrome·python·selenium·测试工具
苏卫苏卫苏卫33 分钟前
【Python】数据结构练习
开发语言·数据结构·笔记·python·numpy·pandas
今天也想MK代码1 小时前
ReFormX:现代化的 React 表单解决方案 - 深度解析与最佳实践
前端·react.js·性能优化
DexterLien1 小时前
Flask + Pear Admin Layui 快速开发管理后台
python·flask·layui
码界筑梦坊1 小时前
基于Flask的笔记本电脑数据可视化分析系统
python·信息可视化·flask·毕业设计·电脑
醋醋1 小时前
Vue2源码记录3
前端·vue.js
dleei1 小时前
react入门(上)
前端·react.js·前端框架