当前位置:   article > 正文

Flask 基础教学(一)_python flask教程

python flask教程

Flask 基础教学(一)

Flask 是一个轻量级的 Python Web 框架,非常适合新手入门。本教程将详细介绍 Flask 的基础知识,帮助您快速上手。

1. 环境准备

在开始学习 Flask 之前,确保您的计算机已安装 Python。您可以通过在终端或命令提示符中输入以下命令来检查 Python 是否已安装:

python --version
  • 1

如果您尚未安装 Python,请访问 Python 官网 下载并安装合适的版本。

2. 安装 Flask

首先,我们需要安装 Flask。在终端或命令提示符中输入以下命令以安装 Flask:

pip install Flask
  • 1

pip 是 Python 的包管理器,可以帮助您安装和管理 Python 库。

3. 创建一个简单的 Flask 应用

3.1 创建项目文件夹

首先,在您的计算机上创建一个新文件夹,用于存放您的 Flask 项目。例如,您可以创建一个名为 my_flask_app 的文件夹。

3.2 创建 Python 文件

在项目文件夹中,创建一个名为 app.py 的新 Python 文件。您将在此文件中编写 Flask 应用的代码。

3.3 编写 Flask 代码

打开 app.py 文件,并输入以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这段代码创建了一个 Flask 应用实例,并定义了一个视图函数(hello_world),该函数将在访问根 URL(/)时被调用。保存文件。

app.run() 是 Flask 应用程序中的一个方法,用于启动 Flask 内置的开发 Web 服务器。在您的 app.py 文件中,这行代码使您的 Flask 应用在本地计算机上运行,并可以通过 Web 浏览器访问。当您运行 python app.py 命令时,app.run() 方法将被调用,启动 Web 服务器并监听请求。

默认情况下,app.run() 将使您的应用程序在本地主机(127.0.0.1)的 5000 端口上运行。您可以通过传递参数来自定义主机和端口,例如:

app.run(host='0.0.0.0', port=8000)
  • 1

此代码将使您的应用程序在所有可用网络接口上运行(例如,让其他计算机访问您的应用程序),并使用 8000 端口。

需要注意的是,在开发过程中使用 Flask 内置的开发 Web 服务器是非常方便的,但对于生产环境,您应该使用更强大、更稳定的 Web 服务器(例如 Gunicorn、uWSGI 或 Apache)来部署您的应用。

3.4 运行 Flask 应用

在终端或命令提示符中,导航到项目文件夹,然后输入以下命令运行 Flask 应用:

python app.py
  • 1

在浏览器中访问 http://127.0.0.1:5000/,您将看到 “Hello, World!”。

4. 路由和视图函数

在 Flask 中,路由是指 URL 到视图函数的映射。视图函数是用于处理特定 URL 请求的函数。以下是一个带有多个路由和视图函数的示例:

修改app.py 文件,添加以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Welcome to the Home page!'

@app.route('/about')
def about():
    return 'This is the About page.'

@app.route('/contact')
def contact():
    return 'Feel free to contact us!'

if __name__ == '__main__':
    app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

现在,我们为每个页面创建了不同的路由和视图函数。保存文件并运行 Flask 应用。尝试访问 http://127.0.0.1:5000/http://127.0.0.1:5000/abouthttp://127.0.0.1:5000/contact,您将看到不同页面的内容。

5. 模板渲染

为了使页面更易于管理和设计,我们将使用模板渲染。Flask 使用 Jinja2 模板引擎进行模板渲染。

5.1 创建模板文件夹

首先,在项目文件夹中创建一个名为 templates 的文件夹。Flask 将在此文件夹中查找模板文件。

5.2 创建 HTML 模板

templates 文件夹中,为每个视图函数创建一个 HTML 文件(例如 home.htmlabout.htmlcontact.html)。

例如,在 home.html 文件中添加以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <h1>Welcome to the Home page!</h1>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

对于 about.htmlcontact.html,您可以使用类似的代码结构。

5.3 修改视图函数以使用模板

修改 app.py 文件,导入 render_template 函数,并修改视图函数以使用模板渲染。如下所示:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('home.html')

@app.route('/about')
def about():
    return render_template('about.html')

@app.route('/contact')
def contact():
    return render_template('contact.html')

if __name__ == '__main__':
    app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

保存文件并运行 Flask 应用。现在,您的页面将使用 HTML 模板进行渲染。

6. 静态文件

静态文件(如 CSS、JavaScript 和图像)对于 Web 应用的外观和功能至关重要。在项目文件夹中创建一个名为 static 的文件夹。Flask 将在此文件夹中查找静态文件。

将您的 CSS、JavaScript 和图像文件放入 static 文件夹中。例如,您可以创建一个名为 styles.css 的 CSS 文件,并在其中添加一些样式。接下来,在 HTML 模板文件中(例如 home.html),添加以下代码以链接到 CSS 文件:

<head>
    ...
    <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
</head>

  • 1
  • 2
  • 3
  • 4
  • 5

7. 表单处理

Flask 可以轻松处理表单。首先,安装 Flask-WTF 扩展:

pip install Flask-WTF
pip install email_validator
  • 1
  • 2

7.1 创建表单类

接下来,创建一个表单类,并在模板中添加表单。在项目文件夹中,创建一个名为 forms.py 的文件,并输入以下代码:

from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, SubmitField
from wtforms.validators import DataRequired, Email

class ContactForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    email = StringField('Email', validators=[DataRequired(), Email()])
    message = TextAreaField('Message', validators=[DataRequired()])
    submit = SubmitField('Submit')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这段代码定义了一个联系表单,包括姓名、电子邮件、消息和提交按钮。

7.2 更新模板

修改 contact.html 模板,添加表单:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contact</title>
</head>
<body>
    <h1>Contact Us</h1>
    <form method="POST" action="{{ url_for('contact') }}">
        {{ form.csrf_token }}
        {{ form.name.label }} {{ form.name }}
        {{ form.email.label }} {{ form.email }}
        {{ form.message.label }} {{ form.message }}
        {{ form.submit }}
    </form>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

7.3 处理表单数据

接下来,在 app.py 文件中导入表单类,并处理提交的表单数据:

from flask import Flask, render_template, request, redirect, url_for, flash
from forms import ContactForm

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'

@app.route('/')
def home():
    return render_template('home.html')

@app.route('/about')
def about():
    return render_template('about.html')

@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()
    if form.validate_on_submit():
        name = form.name.data
        email = form.email.data
        message = form.message.data

        # 这里可以处理表单数据,例如将其存储到数据库或发送电子邮件。

        flash('Message sent successfully!', 'success')
        return redirect(url_for('contact'))
    return render_template('contact.html', form=form)

if __name__ == '__main__':
    app.run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

现在,当用户提交表单时,我们将处理表单数据并显示成功消息。

8. 部署 Flask 应用

在开发过程中,您一直在使用 Flask 自带的开发服务器。然而,对于生产环境,您需要使用一个性能更好、更稳定的 Web 服务器。有许多选择,如 Gunicorn、uWSGI 和 Apache。

以 Gunicorn 为例,首先安装 Gunicorn:

pip install gunicorn
  • 1

然后,运行以下命令启动 Gunicorn:

gunicorn app:app
  • 1

在生产环境中,您还需要配置一个反向代理服务器,如 Nginx 或 Apache,以处理静态文件和负载均衡。

9. 总结

在本教程中,我们详细介绍了 Flask 的基础知识,包括环境准备、安装 Flask、创建简单的 Flask 应用、路由和视图函数、模板渲染、静态文件以及表单处理。这些基本概念将帮助您开始构建自己的 Web 应用。随着您对 Flask 的深入了解,您可能会遇到需要进一步学习的主题,例如:

  • 数据库集成:为您的应用添加数据存储功能,例如使用 Flask-SQLAlchemy 连接到关系型数据库。
  • 用户认证和授权:使用 Flask-Login 和 Flask-User 扩展为您的应用添加用户认证和权限管理功能。
  • RESTful API:构建 RESTful API 以便其他客户端(如移动应用或其他服务)能够访问您的应用数据。Flask-RESTful 和 Flask-RESTPlus 是两个流行的扩展。
  • 错误处理:学习如何优雅地处理应用中可能出现的错误和异常。
  • 单元测试:为您的应用编写测试用例,确保代码的质量和稳定性。
  • 缓存和性能优化:使用 Flask-Caching 扩展为您的应用添加缓存功能,提高响应速度。
  • 异步任务:使用 Celery 处理耗时的后台任务,不影响应用的响应速度。

要深入了解 Flask,建议参阅 Flask 官方文档 和其他教程。祝您学习愉快!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/451330
推荐阅读
相关标签
  

闽ICP备14008679号