Python flask

ops/2024/9/23 4:17:48/

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它被设计为易于使用和扩展,使其成为构建简单网站到复杂的、动态的 web 应用程序的理想选择。以下是 Flask 的一些基本组件和概念:

主要组件

  1. Flask:框架本身,提供基本的功能来处理请求和响应。

  2. Werkzeug:一个工具库,提供各种用于 Web 应用的工具,如多线程支持、测试客户端等。

  3. Jinja2:一个模板引擎,用于渲染 HTML 页面。

  4. 路由:在 Flask 中,路由是 URL 规则和视图函数之间的映射。

安装 Flask

使用 pip 安装 Flask:

pip install Flask

创建基本的 Flask 应用

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello, World!'if __name__ == '__main__':app.run(debug=True)

在这个例子中,我们创建了一个简单的 Flask 应用,它在根 URL (/) 上提供了一个 hello_world 视图函数,返回字符串 'Hello, World!'。

运行 Flask 应用

保存上述代码到文件(例如 app.py),然后在终端中运行:

flask run

或者直接使用 Python:

python app.py

默认情况下,应用将在 localhost:5000 上运行。

路由和视图函数

在 Flask 中,路由是定义 URL 端点和处理这些端点的 Python 函数的方式。例如:

@app.route('/users/<username>')
def show_user_profile(username):# 用户名通过 username 参数传入return 'User: %s' % username

模板渲染

Flask 使用 Jinja2 模板引擎来生成 HTML 页面:

from flask import render_template@app.route('/users')
def list_users():users = ['Alice', 'Bob', 'Charlie']return render_template('users.html', title='Users', users=users)

表单处理

Flask 可以处理 HTML 表单,使用 request 对象来获取表单数据:

from flask import request@app.route('/submit', methods=['POST'])
def submit():if request.method == 'POST':username = request.form['username']# 处理其他表单数据return 'User: %s' % username

数据库操作

Flask 可以与多种数据库后端一起使用,通常使用 ORM(如 SQLAlchemy)来管理数据库操作:

from flask_sqlalchemy import SQLAlchemyapp.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
db = SQLAlchemy(app)class User(db.Model):id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(80), unique=True, nullable=False)# 定义其他字段和关系# 与数据库交互
new_user = User(username='JohnDoe')
db.session.add(new_user)
db.session.commit()

Flask 的灵活性和易用性使其成为 Python Web 开发的流行选择。通过以上基础,你可以开始构建自己的 Flask Web 应用,并根据需要添加更多的功能和模块。


http://www.ppmy.cn/ops/17932.html

相关文章

头歌平台——大数据技术——上机

有问题自行解决&#xff0c;本文档仅用于记录本人课程学习的过程 大数据上机 请先阅读注意事项 md文档用户可以按住ctrl 鼠标左键跳转至注意事项 ,Pdf用户请直接点击 文章目录 大数据上机 请先阅读注意事项[toc]**注意事项 此项必看**大数据技术概述大数据应用 Linux 系统的安…

Centos7 的 Open Stack T 版搭建流程 --- (一)主机物理环境和配置环境变量

Centos7 的 Open Stack T 版搭建流程 文章目录 Centos7 的 Open Stack T 版搭建流程一、主机物理环境准备二、配置主机环境变量&#xff08;1&#xff09;配置网络环境controllercompute &#xff08;2&#xff09;配置安全环境controllercompute &#xff08;3&#xff09;配置…

Java之复制图片

从文件夹中复制图片 从这个文件夹&#xff1a; 复制到这个空的文件夹&#xff1a; 代码如下&#xff1a; import java.io.*; import java.util.Scanner;/*** 普通文件的复制*/public class TestDome10 {public static void main(String[] args) {// 输入两个路径// 从哪里(源路…

OpenHarmony实战开发—进程间通讯

版本&#xff1a;v3.2 Beta5 进程模型 OpenHarmony的进程模型如下图所示&#xff1a; 应用中&#xff08;同一包名&#xff09;的所有UIAbility、ServiceExtensionAbility、DataShareExtensionAbility运行在同一个独立进程中&#xff0c;即图中绿色部分的“Main Process”。…

nodejs工具脚本json转excel

json转excel 主要使用 sheetjs 库 vim convertJsonToExcel.js 封装转换方法 import fs from fs; import XLSX from xlsx;/*** 扁平化嵌套json对象* param {Object} jsonObj* param {String} prefix* returns*/ export function flattenKeys(jsonObj, prefix ) {const resul…

B008-方法参数传递可变参数工具类

目录 方法参数传递可变参数冒泡排序Arrays工具类Arrays工具类常用方法 方法参数传递 /*** java中只有值传递* 基本数据类型 传递的是具体的值* 引用数据类型 传递的是地址值*/ public class _01_ParamPass {public static void main(String[] args) {// 调用方法 getSumge…

LeetCode in Python 69. Sqrt(x) (x的平方根)

求x的平方根&#xff0c;第一想法可能是遍历0&#xff5e;x&#xff0c;求其平方&#xff0c;找到或且但其时间复杂度为O(n)&#xff0c;或是想到遍历0&#xff5e;M即可&#xff0c;其中M x // 2&#xff0c;将时间复杂度降至O()。本文利用二分思想&#xff0c;给出一种时间复…

UML类图

类图(Class diagram)是显示了模型的静态结构&#xff0c;特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。 类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示属性/方法名称前加…