17.2 Flask框架入门

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:
工💗重💗hao💗:野老杂谈
⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。
⭐️ 构建全面的数据指标体系:通过深入的理论解析、详细的实操步骤和丰富的案例分析,为读者提供系统化的指导,帮助他们构建和应用数据指标体系,提升数据驱动的决策水平。
⭐️《遇见Python:初识、了解与热恋》 :涵盖了Python学习的基础知识、进阶技巧和实际应用案例,帮助读者从零开始逐步掌握Python的各个方面,并最终能够进行项目开发和解决实际问题。

摘要

Flask是一个轻量级的Python Web框架,非常适合初学者快速构建和部署Web应用程序。本文将通过简单易懂的语言、幽默的比喻和代码示例,带领读者了解Flask的基础概念、核心功能以及如何构建一个简单的Web应用。希望通过这篇文章,你能快速掌握Flask并创建属于自己的Web项目。

关键词

Flask、Web框架、Python、Web开发、入门教程


一、Flask是个啥?

想象一下,你想开一家餐馆,你需要一间厨房、一套炊具以及几个餐桌,但你不需要整个五星级酒店。Flask就是这样一个简约的厨房,给你提供了做饭的必需品,但不会强迫你用高级的设备和繁琐的规章制度。

Flask是一个Python编写的轻量级Web框架,它简单、灵活且功能强大,非常适合快速开发Web应用。它是“微框架”,因为它只提供了核心功能,而把其他功能留给开发者自己选择和添加。

1.1 为什么选择Flask?
  • 轻量灵活:Flask只提供基础功能,允许你根据需要扩展它。
  • 简单易学:Flask的设计理念是“简单即美”,让你能快速上手。
  • 丰富的扩展:虽然Flask是轻量级的,但它有丰富的扩展库,能满足各种复杂需求。

二、搭建你的第一个Flask应用

说了这么多理论,咱们开始动手做一个Flask应用吧!就像学习做菜一样,最好的方式就是从简单的炒鸡蛋开始。

2.1 安装Flask

首先,你需要安装Flask。确保你已经安装了Python(建议版本3.7及以上),然后运行以下命令:

pip install Flask

安装完毕后,我们可以开始写代码了。

2.2 创建一个简单的Flask应用

打开你的文本编辑器,创建一个名为app.py的文件,然后写入以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

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

这段代码做了什么呢?

  • Flask:首先,我们从Flask库导入了Flask类。这个类是我们创建Flask应用的核心。
  • app = Flask(__name__):接着,我们创建了一个Flask应用对象。__name__是一个特殊的变量,代表当前模块的名称。
  • @app.route('/'):这是一个路由装饰器,它告诉Flask,当用户访问/路径(即首页)时,调用home函数。
  • home()函数:这个函数返回一段简单的文本“Hello, Flask!”。
  • app.run():最后,我们运行应用。debug=True意味着Flask会在代码更改时自动重启,并提供调试信息。
2.3 运行你的Flask应用

在终端(或命令提示符)中,导航到你保存app.py的目录,然后运行:

python app.py

打开浏览器,访问http://127.0.0.1:5000/,你会看到“Hello, Flask!”的问候!恭喜,你已经成功搭建了第一个Flask应用。

三、Flask的核心概念

刚才的例子虽然简单,但它包含了Flask的几个核心概念。下面我们来深入了解一下这些概念。

3.1 路由与视图函数

在Web开发中,路由是指URL与处理函数之间的映射。通过路由装饰器@app.route(),我们可以定义用户访问特定URL时应执行的函数。

比如,我们可以为应用添加更多的路由:

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

@app.route('/hello/<name>')
def hello(name):
    return f"Hello, {name}!"

这里,我们添加了两个新的路由。/about路由显示一个简单的文本,而/hello/<name>路由接收一个URL参数name,并返回个性化的问候。

3.2 模板渲染

文本输出太单调?别急,Flask还支持模板渲染。模板是一种将HTML和动态内容结合的方式。Flask默认使用Jinja2模板引擎,它让我们可以在HTML中插入Python代码。

首先,在你的项目目录下创建一个名为templates的文件夹,并在其中创建index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flask App</title>
</head>
<body>
    <h1>Welcome to Flask, {{ name }}!</h1>
</body>
</html>

接着,修改你的app.py文件:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', name="Pythonista")

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

现在,当你访问主页时,Flask会渲染index.html模板,并将name变量替换为“Pythonista”。

3.3 表单处理与请求对象

Web应用的另一个常见功能是处理表单数据。Flask使这个过程变得简单。让我们创建一个简单的登录表单。

templates文件夹中,创建一个名为login.html的文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form method="POST">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username">
        <br>
        <label for="password">Password:</label>
        <input type="password" id="password" name="password">
        <br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

接着,更新app.py文件:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', name="Pythonista")

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        return f"Welcome, {username}!"
    return render_template('login.html')

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

现在,当用户提交表单时,Flask会捕获表单数据,并显示个性化的欢迎信息。

四、Flask扩展与数据库集成

Flask虽然轻量,但通过扩展可以实现强大的功能。比如,你可以用Flask-SQLAlchemy集成数据库,或用Flask-WTF处理更复杂的表单。

4.1 安装Flask-SQLAlchemy
pip install Flask-SQLAlchemy
4.2 使用SQLAlchemy创建数据库模型
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

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

    def __repr__(self):
        return f"User('{self.username}', '{self.email}')"

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

上面的代码定义了一个简单的User模型,并使用SQLite作为数据库。通过SQLAlchemy,Flask可以方便地与数据库进行交互。

五、部署Flask应用

开发完成后,你可能想要将Flask应用部署到服务器上。最简单的方式是使用Heroku或PythonAnywhere等平台。只需几个步骤,你的应用就可以在线上运行了。

5.1 部署到Heroku
  1. 安装Heroku CLI并登录。
  2. 初始化Git仓库并创建Heroku应用。
  3. 使用git push heroku master命令部署你的Flask应用。

六、结语

Flask是一个非常适合初学者的Web框架,它简单易学,但功能强大。通过本篇文章的介绍,相信你已经掌握了Flask的基本概念和操作步骤。现在,是时候开始构建你自己的Web应用了!不论是个人博客、任务管理工具,还是更复杂的应用,Flask都能助你一臂之力。
祝你开发愉快!


希望这篇文章对你有所帮助,让你在Flask的学习旅程中迈出了坚实的一步。如果有任何问题或建议,欢迎与我联系。Happy coding!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野老杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值