python--Flask框架

Flask是一个轻量级的Python Web框架,它基于Werkzeug WSGI工具箱和Jinja2模板引擎。本文详细介绍了Flask的路由与变量规则、登录验证(GET和POST方法)、模板引擎的应用、静态文件导入、链接的创建、消息闪现以及如何在Flask中集成Bootstrap。通过实例展示了Flask如何处理HTTP请求,并提供了自定义错误页面、模板渲染和变量过滤器的使用方法。
摘要由CSDN通过智能技术生成

Flask框架

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

为了理解 Flask 框架是如何抽象出Web开发中的共同部分,我们先来看看Web应用程序的一般流程。对于Web应用来说,当客户端想要获取 动态资源 时,就会发起一个HTTP请求(比如用浏览器访问一个 URL),Web应用程序会在后台进行相应的业务处理,(从数据库或者进行一些计算操作等)取出用户需要的数据,生成相应的HTTP响应(当然,如果访问静态资源,则直接返回资源即可,不需要进行业务处理)。
在这里插入图片描述
实际应用中, 不同的请求可能会调用相同的处理逻辑 。这里有着相同业务处理逻辑的 HTTP 请求可以用一类 URL 来标识。比如论坛站点中,对于所有的获取Topic内容的请求而言,可以用 topic/<topic_id>/ 这类URL来表示,这里的 topic_id 用以区分不同的topic。接着在后台定义一个 get_topic(topic_id) 的函数,用来获取topic相应的数据,此外还需要建立URL和函数之间的一一对应关系。这就是Web开发中所谓的 路由分发
在这里插入图片描述
通过业务逻辑函数拿到数据后,接下来需要根据这些数据生成HTTP响应(对于Web应用来说,HTTP响应一般是一个HTML文件)。Web开发中的一般做法是提供一个HTML模板文件,然后将数据传入模板,经过渲染后得到最终需要的HTML响应文件。

一种比较常见的场景是, 请求虽然不同,但响应中数据的展示方式是相同的 。仍以论坛为例,对不同topic而言,其具体topic content虽然不同,但页面展示的方式是一样的,都有标题拦,内容栏等。也就是说,对于 topic 来说,我们只需提供一个HTML模板,然后传入不同topic数据,即得到不同的HTTP响应。这就是所谓的 模板渲染
在这里插入图片描述
参考资料:https://www.open-open.com/lib/view/open1477879623923.html

Flask

# 1. 导入Flask类
from flask import Flask
app = Flask(__name__)

# 实现主页
@app.route('/')
def index():
    return  "这是网站的主页"

# 基本路由   /login/---访问路径
# 视图函数   告诉app当用户访问/login/这个路径时, 执行login函数的内容, 最终将return的内容返回给客户端;
@app.route('/login/')
def login():
    return  '<h1 style="color:red">login......</h1>'


if __name__ == '__main__':
    # 运行Flask应用
    # 127.0.0.1----回环地址IP, 每台主机都有====localhost
    # 如何设置, 使得服务奇特主机的浏览器可以访问?  '0.0.0.0'开放所有的IP, 使得可以访问
    # 如何修改端口?  # 可能会报错:Address already in use
    app.run(host='0.0.0.0', port=8080)

在这里插入图片描述
在这里插入图片描述

路由与变量规则

访问的网址如下:
# http://www.douban.org/123457677/comments/
# http://www.douban.org/123457673/comments/
# http://www.douban.org/123457674/comments/
# http://www.douban.org/123457675/comments/

动态路由:
http://www.douban.org/<>/comments/
“”"

# request叫做请求上下文
from flask import  Flask, request
app = Flask(__name__)

# 常用动态路由的规则:
#     1). url路由的一部分
以下是使用 Flask 框架搭建 Web 项目的基本步骤: 1. 安装 Flask 可以通过 pip 命令安装 Flask: ``` pip install Flask ``` 2. 创建 Flask 应用 在你的项目文件夹下创建一个 Python 文件,例如 app.py,然后在文件编写以下代码: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' ``` 这个应用只是一个简单的示例,当你访问根 URL 时,它将返回 "Hello, World!"。 3. 启动 Flask 应用 在命令行进入项目文件夹,并执行以下命令来启动 Flask 应用: ``` export FLASK_APP=app.py # 设置 Flask 应用文件名为 app.py export FLASK_ENV=development # 设置环境为开发环境 flask run # 启动应用 ``` 如果一切顺利,你应该能在终端看到类似下面的输: ``` * Serving Flask app "app.py" (lazy loading) * Environment: development * Debug mode: on * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: xxx-xxx-xxx ``` 这表示应用已经成功运行在本地服务器上。你可以在浏览器输入 http://127.0.0.1:5000/ 访问应用。 4. 创建 HTML 模板和静态文件 在 Flask ,你可以使用 HTML 模板和静态文件来渲染页面和加载 CSS、JavaScript 等文件。在项目文件夹下创建一个 templates 目录和一个 static 目录,分别用于存放 HTML 模板和静态文件。 在 templates 目录创建一个名为 index.html 的文件,例如: ```html <!DOCTYPE html> <html> <head> <title>Flask Web App</title> <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"> </head> <body> <h1>Hello, World!</h1> <p>This is a Flask web app.</p> <script src="{{ url_for('static', filename='script.js') }}"></script> </body> </html> ``` 在 static 目录创建 style.css 和 script.js 文件,例如: ```css body { background-color: #F5F5F5; } ``` ```javascript console.log('Hello, World!'); ``` 5. 渲染 HTML 模板 在 Flask ,你可以使用 Jinja2 模板引擎来渲染 HTML 模板。修改 app.py 文件,加入以下代码: ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello(): return render_template('index.html') ``` 这个代码告诉 Flask 在访问根 URL 时渲染 index.html 模板。 6. 运行应用 保存代码修改后,重新运行应用即可看到修改后的效果。 以上就是使用 Flask 搭建 Web 项目的基本步骤。当然,这只是一个简单的示例,实际项目还需要考虑很多其他因素,例如数据库、用户认证、界面设计等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值