初始Flask框架

1,Flask框架概述

Flask 是一个轻量级的 Python Web 框架,由 Armin Ronacher 于 2010 年创建。它基于 Werkzeug WSGI 工具包和 Jinja2 模板引擎,旨在为开发者提供简单、灵活且可扩展的方式来构建 Web 应用程序。Flask 的设计哲学是“微核心”,即只提供最基本的功能,其他功能通过扩展实现,这使得开发者可以根据项目需求自由选择所需组件。

(1)安装Flask

(2)创建你的第一个Flask应用

(3)运行Flask应用

2,Flask路由与视图函数

在Flask框架中,路由(Route)和视图函数(View Function)是构建Web应用的核心组件。路由用于将URL路径映射到特定的视图函数,而视图函数则负责处理请求并返回响应。

(1)动态路由

Flask支持动态路由,允许在URL中包含变量部分。动态路由通过<variable_name>语法定义,变量部分会作为参数传递给视图函数。

(3)使用Jinja2模板渲染HTML

(4)模块继续与块

<html>
<head>
<meta charset="UTF-8">
<title>
{% block title %}My Website{% endblock %}
</title>
</head>
<body>
<header>
<h1>欢迎访问</h1>
</header>
</body>
<div>
{% block content %}{% endblock %}
</div>
</html>

3,Flask表单处理与用户输入

在现代Web开发中,支持多种HTTP请求方法是构建灵活、高效API的关键。HTTP协议定义了多种请求方法,每种方法都有其特定的语义和用途。

(1)安装Flask-WTF

pip3 install flask-wtf

(2)创建一个简单的表单

from flask import Flask,render template, request
from flask wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired
app=Flask( name)
app.secret key= 's3cr3t'
class NameForm(FlaskForm):
name =StringField('Name',validators=[DataRequired()])
@app.route('/', methods=['GET', 'POST'])
def index():
form =NameForm()
if form.validate on submit():
return f'Hello,{form.name.data}!
return render template(index.html',form=form)
if name =='_main__':
app .run(debug=True)
FlaskForm:继承自FlaskForm类,定义表单字段。

StringField('Name',validators=[DataRequired()]):
 
定义了一个文本输入字过 DataRequired()验证器确保字段不能为空。
form.validate on submit():检查表单是否通过验证并被提交

3,表单验证

表单验证是确保用户输入数据符合预期格式和规则的重要过程,广泛应用于网站、应用程序和其他需要用户交互的场景中。它通常分为客户端验证和服务器端验证两种形式,以确保数据的完整性和安全性。

1. 客户端验证

客户端验证在用户提交表单之前进行,通常通过 JavaScript 或 HTML5 的内置验证功能实现。它的主要目的是提供即时反馈,减少不必要的服务器请求,提升用户体验。

HTML5 验证:HTML5 提供了多种内置的输入类型和属性,

JavaScript 验证:通过自定义 JavaScript 代码实现更复杂的验证逻辑

4,ask的Fl项目结构与部署

一个典型的 Flask 项目通常采用以下结构,以确保代码的可维护性和可扩展性:

(1)项目结构

ask-fl-project/
├── config/                  # 配置文件目录
│   ├── global_config.yaml   # 全局配置
│   ├── client_config.yaml   # 客户端配置
│   └── server_config.yaml   # 服务器配置
├── data/                    # 数据目录
│   ├── raw/                 # 原始数据
│   ├── processed/           # 处理后的数据
│   └── splits/              # 数据划分(训练集、验证集、测试集)
├── models/                  # 模型目录
│   ├── base_model.py        # 基础模型定义
│   ├── fl_model.py          # 联邦学习模型定义
│   └── utils.py             # 模型工具函数
├── clients/                 # 客户端代码
│   ├── client.py            # 客户端主逻辑
│   ├── data_loader.py       # 数据加载器
│   └── trainer.py           # 客户端训练逻辑
├── server/                  # 服务器代码
│   ├── server.py            # 服务器主逻辑
│   ├── aggregator.py        # 模型聚合器
│   └── scheduler.py         # 任务调度器
├── utils/                   # 工具函数
│   ├── logger.py            # 日志记录
│   ├── metrics.py           # 评估指标
│   └── communication.py     # 通信工具
├── requirements.txt         # 依赖库列表
├── README.md                # 项目说明文档
└── run.py                   # 项目启动脚本
 

(2)部署Flask应用

Flask应用的开发环境通常使用Flaskrun 启动,但在生产环境中,我们需要通过更强大的 Wweb 服务器进行部署,常见的有:
sm
Gunicorn:一个Python WSGI HTTP 服务器,常用于生产环境部署:
Nginx:作为反向代理,前端处理静态文件请求,转发动态请求到Flask应用。部署时,可以通过以下命令启动 Flask 应用:

gunicorn -w 4 run:app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值