发布于 2026-01-06 4 阅读
0

Flask Python - 初学者教程

Flask Python - 初学者教程

各位程序员朋友们,大家好!

本文旨在帮助初学者快速上手 Flask,这个流行的Python Web 框架。即使没有任何编程基础,也能从本教程中学习到知识。文章内容将以最简洁的方式呈现,并辅以一些可视化素材。最后,文中还会提及一些开源的 Flask Starter 项目。

感谢阅读! - 内容由App Generator提供


对于新手来说,Python是一种高级解释型编程语言,以其简洁性和多功能性而闻名,广泛应用于 Web 开发、数据科学和自动化领域。Flask一个轻量级的 WSGI Web 应用框架,用 Python 编写,设计简洁易用,便于扩展,使开发人员能够以最少的样板代码快速构建 Web 应用程序。

虽然两者都Python and Flask经常用于 Web 开发,但 Python 作为底层语言,提供核心功能和语法,而 Flask 则作为构建在 Python 之上的专用工具,为创建 Web 应用程序和 API 提供了一种简化的方法。


涵盖主题

  • ✅ 什么是Python
  • ✅ 什么是烧瓶
  • ✅ 什么是 Web 框架
  • ✅ 精选的 Flask 资源列表
  • ✅ Flask Starters 的候选名单
  • ✅ 安装 Flask
  • ✅ 如何安装依赖项
  • ✅ 有用的 Flask 模块
  • ✅ 构建一个真正的 Flask 应用程序
  • ✅ 使用 Heroku 和 Docker 进行部署

Python入门

Python是一种解释型编程语言(无需像 C/C++ 程序那样进行编译),其内置的高级数据结构使其非常适合快速应用程序开发。Python解释器及其标准库以源代码或二进制形式在所有主流平台(Linux、Windows 或 Mac)上均可使用。

面向初学者的 Flask Python 教程 - 图片来自 Python 官方网站。

要运行 Python 程序,我们需要在终端中打开 Python 解释器。第一步是访问官方下载页面,下载适用于我们操作系统(Mac、Linux、Windows)的安装程序并运行它。如果安装成功,我们应该能够从终端窗口访问解释器(Windows 系统使用 PowerShell,Linux 系统使用 Xterm 等)。

$ python --version
$ Python 3.7.2
Enter fullscreen mode Exit fullscreen mode

请安装 Python 3.x 版本,Python 2.x 已弃用,Python 基金会不再支持该版本。


Flask入门

Flask是一个 Python Web 框架,其设计理念是精简核心和模块化。它被归类为微框架,因为它不依赖于特定的工具或库。它没有数据库抽象层、表单验证或其他任何组件,所有这些必要的功能都由 Flask 团队或其他社区开发者开发的第三方库提供。

Flask Python 初学者教程 - 图片来自 Flask 官方网站。


什么是Web框架

我找到的最佳定义是这样的:Web framework is a set of components and libraries designed to simplify your web development process.——来源HackerNoon。的确, Web 框架
的目标是简化我们的开发工作,并帮助我们处理多个项目所需的重复配置和模块。Flask 在这方面做得非常出色。


Flask 资源

这是一份简短而精选的清单。欢迎在评论区提出更多建议。


烧瓶启动器

本节包含一些开源的 UI 就绪型入门示例,这些示例已经编写了一组基本的模块、辅助函数和部署脚本。

Flask 控制面板 - 免费深色设计管理面板。

如需更多开源管理后台,请访问AppSeed平台。源代码以 MIT 许可证发布在 GitHub 上(无需注册账号即可使用)。


安装 Flask

安装 Flask 最简单的方法是使用PIP(Python 包管理器),它随 Python3 二进制发行版一起提供。

$ pip install Flask
Enter fullscreen mode Exit fullscreen mode

要检查安装情况,我们可以打开 Python 命令行界面 (CLI) 并导入模块flask。如果模块安装正确,导入后应该不会出现任何错误。

$ python
$ Python 3.7.2 ... on win32
$ >>> from flask import Flask
$ >>> 
Enter fullscreen mode Exit fullscreen mode

如何安装依赖项

每个项目通常都有一个依赖项列表requirements.txt,该列表保存在项目根目录下的文件中。这是许多开源项目中常见的做法,也被许多开发者(包括我)所采用。我们可以通过两种方式安装模块:

  • 全球范围内,就像我们在上一节中所做的那样。
  • Virtual Environment推荐使用虚拟环境。使用虚拟环境(也称为虚拟机VENV)时,模块将安装在工作站(通常称为sandboxed虚拟环境)中,彼此隔离。

一个简单的用例,用于可视化虚拟环境的优势。

假设我们有两个使用不同版本 Flask 的应用。如果依赖项是全局安装的,那么它们会影响另一个应用的配置。为了避免这种情况,虚拟环境可以帮助开发者在隔离的环境中运行应用,这样两个应用就可以同时使用,而不会出现依赖项错误。

创建基于 Unix 的虚拟环境系统

$ virtualenv --no-site-packages env
$ source env/bin/activate
Enter fullscreen mode Exit fullscreen mode

为 Windows 操作系统创建虚拟环境

$ # virtualenv --no-site-packages env
$ # .\env\Scripts\activate
Enter fullscreen mode Exit fullscreen mode

创建并激活虚拟环境后,我们可以使用以下命令安装项目依赖项PIP

$ # Install requirements
$ pip3 install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

有用的 Flask 模块

Flask 使用第三方库(或模块)来提供许多项目中常用的功能。这里我列出一些常用的模块。如果我遗漏了什么,欢迎在评论区补充。

  • Flask-Login - 创建用户管理流程,并处理身份验证中令人头疼的部分,例如会话管理和处理 cookie。
  • Flask-Mail - 发送电子邮件对于很多类型的应用程序来说都很重要,尤其是在与用户打交道时。
  • Flask-WTF - 这个模块让表单处理变得轻而易举。
  • Flask-SQLAlchemy - 面向多个数据库(MySql、SQLite、PostgreSQL)的抽象面向对象接口。
  • Alembic模块在生产环境中非常实用,尤其是在需要更新数据库架构(添加新表)或修改现有表时。Alembic 能够migrate生成必要的 SQL 语句和脚本,帮助我们将旧架构迁移到新架构。

构建了一个真正的 Flask 产品

Flask Dashboard Black是我们将用作示例的应用程序,用于在屏幕上显示一些漂亮的内容。它是一款开源产品,使用Flask编写,并基于Creative-Tim机构提供的精美 UI 工具包。

源代码已上传至 GitHub,任何人都可以下载并将其用于业余或商业项目。如果您在使用过程中遇到任何问题,请在评论区留言提问。

应用链接

Flask Dashboard Black - 使用 Flask 编写的免费管理面板。

构建说明(也保存在README文件中)如下:

$ # Get the code
$ git clone https://github.com/app-generator/flask-black-dashboard.git
$ cd flask-black-dashboard
$
$ # Virtualenv modules installation (Unix based systems)
$ virtualenv --no-site-packages env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv --no-site-packages env
$ # .\env\Scripts\activate
$
$ # Install modules - SQLite Database
$ pip3 install -r requirements.txt
$
$ # OR with PostgreSQL connector
$ # pip install -r requirements-pgsql.txt
$
$ # Set the FLASK_APP environment variable
$ (Unix/Mac) export FLASK_APP=run.py
$ (Windows) set FLASK_APP=run.py
$ (Powershell) $env:FLASK_APP = ".\run.py"
$
$ # Set up the DEBUG environment
$ # (Unix/Mac) export FLASK_ENV=development
$ # (Windows) set FLASK_ENV=development
$ # (Powershell) $env:FLASK_ENV = "development"
$
$ # Start the application (development mode)
$ # --host=0.0.0.0 - expose the app on all network interfaces (default 127.0.0.1)
$ # --port=5000    - specify the app port (default 5000)  
$ flask run --host=0.0.0.0 --port=5000
$
$ # Access the dashboard in browser: http://127.0.0.1:5000/
Enter fullscreen mode Exit fullscreen mode

如果一切顺利,我们应该能在浏览器中看到仪表盘。请注意,该应用会跳转redirects the guest users到登录界面。请使用注册页面创建一个新用户,并登录应用。默认情况下,应用使用 SQLite 保存登录信息,但我们可以轻松切换到其他数据库,例如 MySQL 或 PostgreSQL。我承诺会在另一篇文章中详细介绍这一点。

Flask 控制面板 - 用户个人资料页面

Flask Dashboard Black - 用户个人资料页面。

Flask 控制面板 - 用户注册页面

Flask Dashboard Black - 用户注册页面。

如前所述,该应用采用 MIT 许可证发布。欢迎获取代码并在此基础上添加更多功能。以下是一些建议:

  • 在用户表中添加另一个字段——地址
  • 更新注册表单,允许用户添加新信息
  • Adress在个人资料页面中显示新字段

部署

在我们的环境中编写应用程序固然不错,但将其发布到实际环境中internet会带来巨大的成就感,尤其对于第一个项目而言更是如此。要将 Flask 应用程序部署到线上,我们有很多选择,具体取决于我们使用的服务器和平台。

部署到 Heroku

我认为最简单的方法是使用Heroku平台。当然,我们需要一个 Heroku 账号,并且需要在我们的环境中安装 Heroku CLI。以下是在 Heroku 上部署 Flask Dashboard Black 的步骤:

$ # Get the code
$ git clone https://github.com/app-generator/flask-black-dashboard.git
$ cd flask-black-dashboard
$
$ # Heroku Login
$ heroku login
$
$ # Create the app in Heroku platform
$ heroku create # a random name will be generated by Heroku
$
$ # Push the source code and trigger the deploy
$ git push heroku master
$
$ # Visit the deployed app in browser.
$ heroku open
Enter fullscreen mode Exit fullscreen mode

如果一切顺利,应用程序应该就能正常运行了。数据库会自动创建,我们只需要注册一个新用户并登录即可。

Docker

这不是一种用户友好的部署方法,但我们提到的示例应用程序带有必要的脚本,可以使用 Docker 立即部署该应用程序。

如果您想全面了解 Docker 部署的整个流程,请阅读这篇专门介绍此主题的文章:《Flask Dashboard - 使用 Docker 执行》。基本步骤如下:

使用 Git 从 Github 获取代码

$ git clone https://github.com/app-generator/flask-black-dashboard.git
$ cd flask-black-dashboard
Enter fullscreen mode Exit fullscreen mode

在 Docker 中启动应用程序

$ sudo docker-compose pull && sudo docker-compose build && sudo docker-compose up
Enter fullscreen mode Exit fullscreen mode

请在浏览器中访问http://localhost:5005。应用应该可以正常运行。


对于初学者来说,部署并非易事,因此我倾向于提供一个配置完整的示例,并用一些简洁的脚本来隐藏真正的复杂性。要解释各种部署选项,我们需要撰写一篇完整的文章,介绍所有可能的架构以及推荐的架构。

对于具体的部署配置,欢迎在评论区提问。我很乐意提供帮助和补充意见。


感谢阅读!更多资源,请访问:

文章来源:https://dev.to/sm0ke/flask-python-tutorial-for-beginners-222f