首页 > 其他分享 >Flask基础教程(第一阶段)

Flask基础教程(第一阶段)

时间:2024-08-07 09:56:40浏览次数:13  
标签:name 示例 Flask 创建 app 基础教程 模板 第一阶段

目录

Flask基础教程

Flask是一个轻量级的Web框架,基于Python语言开发,能够快速搭建Web应用。在这篇教程中,我们将逐步探索Flask的基础知识,包括Flask的概述、环境准备、创建第一个Flask应用、请求与响应处理以及模板渲染。

第一部分:Flask概述

1.1 了解Flask

Flask是一个用Python编写的微框架,它主要用于构建Web应用。由于其简单性和灵活性,Flask在初学者和专业开发者中都受到欢迎。Flask是一个可扩展的框架,可以使用多种插件和扩展库,以便在项目中添加更多功能。

1.2 Flask的优缺点分析

优点:

  • 简单易用:Flask的学习曲线相对较低,适合初学者入门。
  • 灵活性:Flask没有强制的项目结构,开发者可以按需组织代码。
  • 强大的社区支持:Flask拥有大量的扩展和插件,可以方便地集成不同功能。

缺点:

  • 功能有限:Flask是微框架,缺少一些更复杂的功能(如用户认证、ORM等),需要手动集成。
  • 项目结构不规范:由于灵活性高,初学者可能在项目结构上感到困惑。

1.3 学习Flask的历史与背景

Flask由Armin Ronacher在2010年创建,作为一个轻量级框架,它的设计灵感来源于Django和Tornado。Flask以其简洁的设计和强大的扩展性迅速流行,成为Python Web开发领域的重要框架之一。

第二部分:环境准备

2.1 Python环境

确保你的计算机上安装了Python 3.x。你可以通过以下命令检查Python版本:

python --version

如果未安装Python,请前往Python官方网站下载并安装最新版本。

2.2 虚拟环境

为了避免包冲突,建议使用虚拟环境。这里介绍两种常用的方法:

使用venv
  1. 创建一个虚拟环境:

    python -m venv myenv
    
  2. 激活虚拟环境:

    • Windows:
      myenv\Scripts\activate
      
    • macOS/Linux:
      source myenv/bin/activate
      
使用conda

如果你使用Anaconda,可以创建和激活虚拟环境:

conda create --name myenv python=3.x
conda activate myenv

2.3 Flask安装

在激活的虚拟环境中安装Flask,使用以下命令:

pip install Flask

第三部分:创建第一个Flask应用

3.1 创建项目目录

在你的开发目录中创建一个新的文件夹,例如flask_app,并在其中创建一个名为app.py的文件。

3.2 编写基本的应用结构和第一个视图函数

以下是一个简单的Flask应用示例:

# app.py
from flask import Flask

app = Flask(__name__)

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

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

在上述代码中:

  • from flask import Flask:导入Flask类。
  • app = Flask(__name__):创建Flask应用实例。
  • @app.route('/'):定义一个路由,指向根URL。
  • def hello():定义视图函数,返回一个简单的字符串。
  • app.run(debug=True):启动开发服务器。

3.3 启动开发服务器,访问基本路由

在终端中运行以下命令以启动Flask应用:

python app.py

访问 http://127.0.0.1:5000/,你应该会看到“Hello, Flask!”。

第四部分:请求与响应

4.1 理解Flask请求对象

Flask提供了一个request对象,用于处理HTTP请求。可以从中获取请求数据。

示例:获取查询参数
@app.route('/greet')
def greet():
    name = request.args.get('name', 'World')  # 默认值为'World'
    return f'Hello, {name}!'

在浏览器中访问 http://127.0.0.1:5000/greet?name=Alice,将返回“Hello, Alice!”。

4.2 获取请求数据

Flask可以处理多种类型的数据:

  • 表单数据:使用request.form获取。
  • JSON数据:使用request.json获取。
示例:处理表单提交
from flask import request, render_template

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

form.html文件示例:

<!doctype html>
<html>
<head><title>Form Example</title></head>
<body>
    <form method="POST">
        Name: <input type="text" name="name">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

4.3 学习Flask响应对象

Flask允许开发者轻松创建响应。可以返回不同类型的HTTP响应。

示例:自定义响应
from flask import jsonify

@app.route('/json')
def json_example():
    return jsonify(message='Hello, World!'), 200  # 返回JSON响应

第五部分:模板渲染

Flask使用Jinja2模板引擎进行模板渲染。你可以通过render_template函数将数据传递到HTML模板中。

5.1 学习Jinja2模板引擎的基本用法

创建名为templates的文件夹,并在其中创建一个index.html文件:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Index</title></head>
<body>
    <h1>{{ title }}</h1>
    <p>{{ message }}</p>
</body>
</html>

5.2 使用render_template函数返回HTML页面

更新app.py,添加一个新路由以渲染模板:

from flask import render_template

@app.route('/index')
def index():
    return render_template('index.html', title='Welcome', message='Hello from Flask!')

访问 http://127.0.0.1:5000/index,你应该看到定义的HTML内容。

5.3 学习模板继承、过滤器、变量和控制结构

使用模板继承可以创建一个基本布局,再在具体模板中扩展它。

基础布局示例:

<!-- base.html -->
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %}Flask App{% endblock %}</title></head>
<body>
    <header>
        <h1>{% block header %}Welcome{% endblock %}</h1>
    </header>
    <div>{% block content %}{% endblock %}</div>
</body>
</html>

继承布局示例:

<!-- index.html -->
{% extends "base.html" %}

{% block title %}Index Page{% endblock %}
{% block header %}Index Header{% endblock %}
{% block content %}
    <p>This is the index page content.</p>
{% endblock %}

过滤器示例

可以在模板中使用过滤器修改变量的显示方式:

<p>{{ message|capitalize }}</p>

控制结构示例

使用控制结构控制模板展示内容:

{% if user %}
    <p>Hello, {{ user }}!</p>
{% else %}
    <p>Hello, Guest!</p>
{% endif %}

结论

通过这篇教程,你已经掌握了Flask的基础知识,创建了一个简单的Flask应用,并了解了请求与响应的处理、模板渲染等核心功能。Flask的灵活性和强大的扩展性使其成为开发Web应用的理想选择。接下来,你可以根据自己的需求进一步深入学习Flask的高级特性、数据库集成、用户认证等模块。祝你在Flask开发之旅中愉快!

标签:name,示例,Flask,创建,app,基础教程,模板,第一阶段
From: https://blog.csdn.net/m0_54490473/article/details/140783277

相关文章

  • 使用 Flask 和 Yolov2 在 uLong32 中使用区域指针检测 2024 年奥林匹克数据集中的浮动
    你好StackOverflow!!!c:我正在使用#Yolov2和embedded#CVSSfordetecting浮动UIeleme#any视频对象实例中的ntse;在eexampl......
  • 【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
    摘要气象数据分析在各行各业中扮演着重要的角色,尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中,准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。本系统基于PythonFlask框架,通过对气象数据的分析和处理来提供......
  • PADS Layout 入门基础教程(五)
    本文章继续接着《PADSLayout入门基础教程(四)》的内容往下介绍:元器件丝印和属性的调整  首先,Ctrl+Alt+C进入显示颜色设置,把导线显示、铜箔显示和2D线显示取消勾选。 整板就如下图所示:   鼠标单击右键》选择文档》鼠标左键随便单击一个参考编号》Ctrl+A把全部参......
  • 003.flask与Mysql的连接以及增删改查
    目录Flask与Mysql的连接以及在Flask中对数据库进行增删改查1.创建文件并且配置2.flask与Mysql数据库进行连接以及检测是否连接成功3.创建一个类对象User以及将属性添加到数据库中4.在flask中进行数据库的增删改查5.总结Flask与Mysql的连接以及在Flask中对数据库进行增删改查p......
  • 003.flask与Mysql的连接以及增删改查
    Flask与Mysql的连接以及在Flask中对数据库进行增删改查python解释器:3.8.3版本flask==2.2.2版本flask_sqlalchemy=3.1.1flask_migrate==4.0.71.创建文件并且配置创建一个大文件在该文件中进行创建static(静态),templates(动态文件),app.py文件将大文件移到vsc......
  • Flask 应用程序的 POST 请求出现 405 method not allowed 错误
    我有一个简单的Web应用程序,可以使用以下代码向选定的受访者发送消息(使用TwilioAPI):app.pyclient=Client(account_sid,auth_token)@app.route('/')defindex():returnrender_template('index.html')@app.route('/send_sms',methods=['POST......
  • FLASK 相关链接
    FLASK中文文档:https://dormousehole.readthedocs.io/en/latest/FLASK教程:https://www.bookstack.cn/read/head-first-flask/README.mdhttp://www.coolpython.net/flask_tutorial/basic/route.htmlhttp://www.pythondoc.com/flask-mega-tutorial/index.htmlPython中文学......
  • python+flask计算机毕业设计健康管理系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着人们生活水平的提高和健康意识的增强,健康管理已成为社会关注的焦点。传统的健康管理方式往往依赖于纸质记录和医生的口头建议,这......
  • python+flask计算机毕业设计实验室信息化管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快速发展的科技时代,实验室作为科研与教学的核心场所,其管理效率和信息化水平直接影响到研究成果的质量和速度。传统的实验室管理方式......
  • python+flask计算机毕业设计中国诗词鉴赏网站(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景中国诗词作为中华文化的重要组成部分,承载着千年的历史与文化底蕴。从古至今,诗词一直是文人墨客表达情感、描绘景象的重要工具。然而,随着时......