我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【100天精通python】Day49:python web编程_web框架,Flask框架从安装到使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【100天精通python】Day49:python web编程_web框架,Flask框架从安装到使用

目录

1 Web 框架

2 python 中常用的web框架

3 Flask 框架的使用

3.1 Flask框架安装

3.2 第一个Flask程序

3.3 路由

3.3.1 基本路由

3.3.2 动态路由

3.3.3 HTTP 方法

3.3.4 多个路由绑定到一个视图函数

3.3.5 访问URL 参数的路由

3.3.6 带默认值的动态路由

3.3.7 带不同数据类型的动态路由

3.4 静态文件

3.5 模版


1 Web 框架

        Web 框架(Web Framework)是一种软件工具集,旨在简化和加速 Web 应用程序的开发过程。它提供了一组预先设计好的模块、函数、类和工具,帮助开发者更轻松地构建和维护功能丰富的 Web 应用程序。通过使用 Web 框架,开发者可以避免从头开始编写大量的重复性代码,从而集中精力处理业务逻辑和应用程序的核心功能。

Web 框架的功能如下:

  1. 路由和 URL 处理: Web 框架通常提供路由功能,允许开发者将不同的 URL 映射到相应的处理函数或视图上。这使得 URL 结构更加清晰,能够轻松处理不同的请求。

  2. 模板引擎: 模板引擎允许开发者将 HTML 和动态数据结合起来,以生成动态的 Web 页面。它们通常提供条件语句、循环、变量替换等功能,帮助开发者有效地生成页面内容。

  3. 数据库交互: Web 框架通常提供数据库抽象层,简化了与数据库的交互。这使开发者能够更轻松地执行数据库查询、插入、更新和删除操作。

  4. 表单处理: Web 应用程序中经常需要处理用户提交的表单数据。Web 框架通常提供机制来验证表单数据、处理提交并生成响应。

  5. 会话管理: 许多 Web 应用程序需要跟踪用户的会话状态。Web 框架通常提供会话管理功能,以便开发者可以方便地管理用户会话和状态。

  6. 促进代码重用

2 python 中常用的web框架

        在Python中,有很多常用的Web框架可供选择。以下是一些常见的Python Web框架:

Flask:Flask是一个微型的、灵活的Web框架,它具有简洁的语法和强大的扩展能力。它非常适合构建小型的、轻量级的应用程序。

Django:Django是一个全功能的Web框架,它提供了许多开箱即用的功能,如数据库ORM、用户认证、缓存等。Django的设计理念是“松散耦合”的组件,使得开发过程更高效。

Pyramid:Pyramid是一个轻量级的Web框架,它注重灵活性和可扩展性。它使用了一种类似于插件的机制,使得开发者可以选择性地增加或删除框架的功能。

Bottle:Bottle是一个小巧且容易上手的Web框架,它具有最少的依赖关系,并且只有一个单独的源文件。Bottle非常适合构建小型的、快速的应用程序。

Tornado:Tornado是一个高性能的Web框架,它采用了非阻塞式I/O和事件驱动的方式来处理请求。Tornado适合处理高并发的情况,例如聊天应用程序和实时数据推送。

3 Flask 框架的使用

3.1 Flask框架安装

        Flask 依赖两个外部库:Werkzeug 和 Jinja2。Werkzeug是一个WSGI工具集,Jinja2 负责渲染模板。本文以在annconda创建的虚拟环境下安装,如下命令:

pip install flask

如下 

(venv) PS D:\python365> pip install flaskCollecting flask  Downloading flask-2.3.3-py3-none-any.whl (96 kB)     ---------------------------------------- 96.1/96.1 kB 365.4 kB/s eta 0:00:00Collecting importlib-metadata>=3.6.0  Downloading importlib_metadata-6.8.0-py3-none-any.whl (22 kB)Requirement already satisfied: Jinja2>=3.1.2 in d:\python365\venv\lib\site-packages (from flask) (3.1.2)Collecting colorama  Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)Requirement already satisfied: zipp>=0.5 in d:\python365\venv\lib\site-packages (from importlib-metadata>=3.6.0->flask) (3.16.2)Requirement already satisfied: MarkupSafe>=2.0 in d:\python365\venv\lib\site-packages (from Jinja2>=3.1.2->flask) (2.1.3)Installing collected packages: Werkzeug, itsdangerous, importlib-metadata, colorama, blinker, click, flaskSuccessfully installed Werkzeug-2.3.7 blinker-1.6.2 click-8.1.7 colorama-0.4.6 flask-2.3.3 importlib-metadata-6.8.0 itsdangerous-2.1.2[notice] A new release of pip available: 22.3.1 -> 23.2.1[notice] To update, run: python.exe -m pip install --upgrade pip(venv) PS D:\python365>

3.2 第一个Flask程序

安装完成后,编写第一个Flask程序。下面是一个简单的 Flask 程序示例,它创建一个最基本的 Web 应用,并在访问特定 URL 时返回 "Hello, Flask!" 的消息:

from flask import Flask# 创建 Flask 应用实例app = Flask(__name__)# 定义路由和视图函数@app.route('/')def hello():    return "Hello, Flask!"# 如果这个文件是作为主程序运行,则执行下面的代码if __name__ == '__main__':    app.run(debug=True)

输出如下:

e79209d5762a41fdab5d3537d54c6623.png

在浏览器输入网址:http://127.0.0.1:5000/,如下:

911b746ab006476cb35b177f9357c22b.png

 以上代码是使用Python的Flask框架创建一个简单的Web应用。

        首先,需要导入Flask库。然后,创建一个Flask应用实例,以当前模块的名称作为参数,即 ​__name__​。

        接下来,使用装饰器 ​@app.route('/')​定义路由,即指定URL路径。在这个例子中,根路径'/'表示应用程序的默认页面。

        然后,定义一个视图函数 ​hello()​,它会在用户访问根路径时被调用。这个函数返回一个字符串"Hello, Flask!",作为响应给用户。

        最后,通过 ​app.run()​方法运行应用程序,开启一个本地服务器,监听HTTP请求并返回相应的结果。设置 ​debug=True​可以启用调试模式。

        若你运行这个文件作为主程序,将执行 ​app.run()​语句,启动应用程序,并在终端输出调试信息。

3.3 路由

      在 Flask 中,路由用于将特定的 URL 路径与相应的视图函数关联起来。路由决定了当用户访问不同的 URL 时,应该执行哪个视图函数来处理请求。使用装饰器 @app.route() 可以定义路由。

下面是一些不同情况下的路由定义示例:

3.3.1 基本路由

from flask import Flaskapp = Flask(__name__)@app.route('/')def index():    return "Welcome to the homepage!"

         在这个示例中,当用户访问根路径 / 时,会调用名为 index() 的视图函数,并返回 "Welcome to the homepage!" 的消息。

3.3.2 动态路由

        你可以在路由中使用变量部分,用于捕获 URL 中的不同值。这些变量将作为参数传递给视图函数。

@app.route('/user/')def show_user_profile(username):    return f"User: {username}"

在这个示例中,当用户访问类似 /user/johndoe 的路径时,show_user_profile() 视图函数将会被调用,参数 username 将接收值 "johndoe"

3.3.3 HTTP 方法

你可以通过指定不同的 HTTP 方法来处理不同的请求,如 GET、POST、PUT、DELETE 等。

@app.route('/submit', methods=['POST'])def submit_form():    return "Form submitted successfully!"

        这个示例中,只有当用户使用 POST 方法访问 /submit 路径时,才会调用 submit_form() 视图函数。

常见的HTTP方法及说明:

bbe5163800064ec4baf9df3e75c635a9.png

3.3.4 多个路由绑定到一个视图函数

你可以将多个不同的路径绑定到同一个视图函数,以提供更多的访问选项。

@app.route('/')@app.route('/home')@app.route('/index')def homepage():    return "Welcome to the homepage!"

这里,无论用户访问根路径 //home 还是 /index,都会调用 homepage() 视图函数。

3.3.5 访问URL 参数的路由

        你可以在视图函数中访问 URL 参数,这些参数会被 Flask 自动解析并传递给视图函数。

from flask import request@app.route('/profile')def user_profile():    username = request.args.get('username')    return f"User profile: {username}"

     示例代码定义了一个路由 /profile,当用户访问该路径时,会调用名为 user_profile() 的视图函数。在这个视图函数中,使用了 request 对象来获取 URL 参数 username 的值,然后返回一个包含用户名的消息。

3.3.6 带默认值的动态路由

@app.route('/user//')def user_profile(username, age=18):    return f"User: {username}, Age: {age}"

 在这个示例中,age 参数具有默认值 18。这意味着你可以通过 /user/johndoe 访问,而不仅仅是 /user/johndoe/25

3.3.7 带不同数据类型的动态路由

@app.route('/item/')def get_item(item_id):    return f"Item ID: {item_id}"

        这里,item_id 只会匹配整数类型的值,如果访问 /item/123,那么 item_id 将被传递为整数 123。

这些是一些常见情况下的路由定义示例。通过合理定义路由,你可以构建出逻辑清晰且易于访问的 Web 应用程序。注意,路由定义应该在 @app.route() 装饰器下面紧接着是对应的视图函数定义。

3.4 静态文件

        在 Flask 中,静态文件是指不需要动态生成的资源,如样式表、JavaScript 文件、图像等。这些文件不会在每次请求时都由服务器生成,而是直接返回给客户端浏览器。Flask 提供了专门的路由和配置来处理静态文件。

        默认情况下,Flask 在应用根目录下创建一个名为 static 的文件夹,用于存放静态文件。你可以在其中创建子文件夹来组织不同类型的静态资源,例如 static/css 用于存放样式表,static/js 用于存放 JavaScript 文件。

以下是如何在 Flask 中处理静态文件的基本步骤:

  1. 在项目根目录下创建一个 static 文件夹,用于存放静态文件。在其中可以创建子文件夹来组织不同类型的静态资源,例如 static/cssstatic/js

  2. 使用 url_for() 函数来生成静态文件的 URL。这个函数会根据配置生成正确的 URL,确保正确地访问到静态文件。

下面是一个简单的示例,演示如何在 Flask 中处理静态文件:

from flask import Flask, render_template, url_forapp = Flask(__name__)@app.route('/')def index():    return render_template('index.html')if __name__ == '__main__':    app.run()

在这个示例中,render_template('index.html') 函数用于渲染模板,而模板中可能需要加载静态文件。例如,在模板中加载样式表:

    Flask Static Files    

来源地址:https://blog.csdn.net/qq_35831906/article/details/132578291

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【100天精通python】Day49:python web编程_web框架,Flask框架从安装到使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录