1 Quick Start | Flask开发

Flask连接MongoDB实战:从Windows安装到生产级配置 MongoDB是一种面向文档的NoSQL数据库,以JSON为原生数据模型,天然支持嵌套、数组、动态schema和高并发写入,特别适合Flask等轻量Web框架处理半结构化业务数据。其核心原理在于文档存储替代表结构,通过B-tree索引、内存映射文件和连接池实现高性能读写。技术价值体现在开发敏捷性(无需DDL迁移)、查询局部性(避免JOIN)和水平扩展能力。典型应用场景包括日志分析、IoT设备上报、内容管理系统及API后端——尤其当业务需求频繁变更、数据形态不固定时,MongoDB比关系型数据库更具工程适应性 阅读详情

全景图

运行1

如果是.py文件,使用下面的语句:

$ set FLASK_APP=hello.py
$ flask run

如果是文件夹,则为:

$ set FLASK_APP=hello
$ flask run

如果使用调试模式,在flask run前添加:

$ set FLASK_ENV=development

使服务器对外可见

Externally Visible Server If you run the server you will notice that
the server is only accessible from your own computer, not from any
other in the network. This is the default because in debugging mode a
user of the application can execute arbitrary Python code on your
computer.

If you have the debugger disabled or trust the users on your network,
you can make the server publicly available simply by adding
–host=0.0.0.0 to the command line:

$ flask run --host=0.0.0.0 This tells your operating system to listen
on all public IPs.

更多信息

关于部署,可以参考Deployment Options。
开发服务器的更多参数在Development Server。
关于调试器,可以参考Werkzeug documentation。

路由

使用route()装饰器来将函数绑定到URL上。

@app.route('/xxx/<var>')
def func():
	return 'hello'

URL可以是动态的。<var>中的内容可以被用作参数,对其类型转换的操作如下。

类型转换

使用<converter:variable_name>来指定参数的类型。可指定的类型如下表:

typedescription
string(default) accepts any text without a slash
intaccepts positive integers
floataccepts positives floating point values
pathlike string but also accepts slashes
uuidaccepts UUID strings

url_for()

使用url_for()来将一个指向一个函数的URL。

也可以通过下面的方式指向一个静态文件。静态文件存放在static文件夹中,并作为url_for的endpoint参数。

url_for('static', filename='style.css')

HTTP方法

通常情况下,路由回应GET request。在app.route()中添加methods参数来处理不同的HTTP方法。例如:

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return do_the_login()
    return show_the_login_form()

Render Templates

使用render_template()方法来渲染一个template。可以将参数传递给template;template之间的继承在保持风格的同时也减少了代码量。

from flask import render_template

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)

关于template的更多信息可参考Jinja2。

参数可以通过下面的方式从函数传递给template:

<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello, World!</h1>
{% endif %}

在template可以获取request,session和g的对象信息,以及get_flashed_messages()函数。

Accessing Request Data

在flask中,客户端向服务器端发送的数据由全局对象request2回应。flask中使用Context Locals3来实现“全局对象” (测试或单元测试时需查阅)。

通过request对象的method4 属性来获取当前request的method。通过form5 属性来从POST或PUT请求访问数据。

from flask import request

@app.route('/login', methods=['POST', 'GET'])
def login():
    error = None
    if request.method == 'POST':
        if valid_login(request.form['username'],
                       request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = 'Invalid username/password'
    # the code below is executed if the request method
    # was GET or the credentials were invalid
    return render_template('login.html', error=error)

File Uploads

在HTML中设置:

enctype="multipart/form-data"

少量的信息在Quickstart中,更多信息在Uploading Files Pattern中。

Cookies

待更新
https://flask.palletsprojects.com/en/1.1.x/quickstart/#cookies

Redirects and Errors

from flask import abort, redirect, url_for

@app.route('/')
def index():
	# to redirect a user to another endpoint, use the redirect() function
    return redirect(url_for('login'))

@app.route('/login')
def login():
	# to abort a request early with an error code, use the abort() function
    abort(401)
    this_is_never_executed()

如果想要修改错误页,使用errorhandle()装饰器。

from flask import render_template

@app.errorhandler(404)
def page_not_found(error):
    return render_template('page_not_found.html'), 404

Sessions

session在多个request的处理过程中存储当前的用户信息。

This is implemented on top of cookies for you and signs the cookies cryptographically. What this means is that the user could look at the contents of your cookie but not modify it, unless they know the secret key used for signing.

使用session需要设置一个secret key。

from flask import Flask, session, redirect, url_for, request
from markupsafe import escape

app = Flask(__name__)

# Set the secret key to some random bytes. Keep this really secret!
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'

@app.route('/')
def index():
    if 'username' in session:
        return 'Logged in as %s' % escape(session['username'])
    return 'You are not logged in'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return '''
        <form method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

@app.route('/logout')
def logout():
    # remove the username from the session if it's there
    session.pop('username', None)
    return redirect(url_for('index'))

The escape() mentioned here does escaping for you if you are not using the template engine (as in this example).

使用下面的方法生成一个好的secret key。

$ python -c 'import os; print(os.urandom(16))'
b'_5#y2L"F4Q8z\n\xec]/'

Message Flashing

The flashing system basically makes it possible to record a message at the end of a request and access it on the next (and only the next) request. This is usually combined with a layout template to expose the message.

To flash a message use the flash() method, to get hold of the messages you can use get_flashed_messages() which is also available in the templates. Check out the Message Flashing for a full example.

Logging

The attached logger is a standard logging Logger, so head over to the official logging docs for more information.

Read more on Application Errors.

Using Flask Extensions

Extensions are packages that help you accomplish common tasks. For example, Flask-SQLAlchemy provides SQLAlchemy support that makes it simple and easy to use with Flask.

For more on Flask extensions, have a look at Extensions.

Deploying to a Web Server

Deployment Options

未包含部分

  • About Responses
  • Hooking in WSGI Middleware

  1. Quickstart ↩︎

  2. Request ↩︎

  3. Context Locals ↩︎

  4. request.method ↩︎

  5. request.form ↩︎

基于1Panel部署AI网关与智能路由:企业级大模型调用降本增效实战 在AI应用开发中,Token成本优化与供应商风险管理是核心挑战。AI网关作为中间层服务,通过统一接口、认证和协议转换,实现了应用与底层大模型服务的解耦。其核心原理在于引入智能路由策略,根据预设规则(如成本、性能、负载)将请求动态分发至不同后端模型。这一技术架构的价值在于显著降低Token消耗、提升系统可用性,并规避单一供应商依赖风险。其典型应用场景包括企业级AI应用集成、多模型A/B测试以及高并发服务保障。本文以1Panel面板为部署平台,手把手演示如何构建一个具备智能路由能力的AI网关,通过配置多模型后端 阅读详情

相关推荐

LongCat-2.0 MoE模型实战:1M上下文代码生成与部署指南

混合专家模型(MoE)通过稀疏激活机制扩展参数规模而不显著增加计算成本,其核心原理是将输入路由到不同的专家网络进行处理。这种架构在保持庞大知识容量的同时,实现了推理效率的平衡,特别适用于需要处理多样化模式的复杂任务。在AI大模型技术快速迭代的背景下,MoE模型为处理超长上下文和提升代码生成能力提供了重要技术价值。在Agentic Coding(智能体编码)场景中,模型需要理解整个项目结构、跨文件引用和长序列逻辑,1M上下文窗口相当于约40万行代码容量,能够支持全项目代码分析、长序列生成等复杂编程任务。美团开

cuyi7076的博客 402

Flask框架学习小总结

说明:Flask是一个Python编写的Web 微框架,利用它可以使用Python语言快速实现一个网站或Web服务。因为我是从Django框架入手Python Web的,所以在学习Flask的过程中,总是会一边思考同样的功能,Django该如何实现。本文参考自Flask官方文档,大部分代码引用...

jack_970124的博客 573

Day01 Geant4学习

​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的。从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event。

LXS_357的博客 933

python -c 执行单行命令/脚本,有点意思

python -c参数,支持执行单行命令/脚本。 例: > python -c "import os;print('hello'),print('world')" > python -c "import os;print('hello');print('world')" 注意:要用双引号将命令包起来,import要以**;结尾,命令用[]括起来,多行命令用多个[]** > py...

phoenix339的博客 1万+

ADS2023仿真变容二极管特性

仿真S-Param仿真控件,设置为Single Point,将频率设置为1MHz,同时勾选Z-parameters,取消S-parameters,从元件库中选择元器件搭建原理图,并根据器件spice提供的相关参数,对原理图中器件参数进行修改,修改完成的电路图如下图所示。添加var控件和MeasEqn控件,相关设置如图所示,Ct为变容管的电容值,Q0为其品质因数。因此,对变容二极管的模型仿真结果是可以信赖的。将其解压,在spice文件夹中,可以找到我们想要的器件参数,和仿真简要电路图。

weixin_45811090的博客 1万+

计算机视觉——SIFT特征匹配

文章目录一、SIFT特征检测原理1.1基本思想1.2二、SIFT特征检测图片兴趣点三、SIFT特征检测描述子匹配四、输入图片检测与之 一、SIFT特征检测原理 1.1基本思想 1.2 二、SIFT特征检测图片兴趣点 代码: 检测结果: 三、SIFT特征检测描述子匹配 四、输入图片检测与之 ...

weixin_43869874的博客 3855

Flask学习笔记(一) Hello Flask

基于该书学习:Web开发:基于Python的Web应用开发实战(第二版) 示例代码地址:https://github.com/miguelgrinberg/flasky.git PS: 放弃分支修改: git reset --hard 查看分支tag : git tag 1.helloword from flask import Flask app = Flask(_...

yxpandjay的博客 626

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 386

Flask1.0.2系列(四) 手把手教你建Flask应用程序

英文原文地址:http://flask.pocoo.org/docs/1.0/tutorial/若有翻译错误或者不尽人意之处,请指出,谢谢~        本章节将带你创建一个叫做Flaskr的基础博客应用程序。用户可以注册、登录、创建文章以及修改或者删除他们自己的文章。你也可以打包以及安装这个应用程序到其他电脑上。        这里假设你已经对Python很熟悉了。如果没有学习或者有些遗忘了,...

ReganDu的博客 4522

GEE APP:时间序列影像批处理工具:按月筛选与智能导出解决方案出工具

本文介绍了一个基于Google Earth Engine(GEE)开发的智能时序影像处理工具,可高效处理遥感影像时间序列数据。该工具采用三栏式交互布局,包含控制面板、地图显示和缩略图预览区域。核心功能包括:1)灵活的时间筛选机制,支持年度范围选择和月份批量选择;2)智能影像筛选算法,基于云量、空间覆盖等条件自动选择最佳影像;3)交互式缩略图预览,支持点击加载完整影像;4)自动化批量导出系统,实现标准化命名和统一存储。工具可广泛应用于农业监测、城市扩张研究、生态环境评估等领域,显著提高遥感数据预处理效率,确保

此星光明博客 113

KylinOS 离线安装 MinIO【图文步骤】

在国产操作系统 KylinOS 中安装 MinIO,详细步骤...

甘蓝的专栏 1535

Flask入门和快速上手

目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 ...

weixin_30794491的博客 512

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

努力让自己发光,对的人才能迎着光而来 14万+

Flask Quick Start

from flask import Flask app = Flask(__name__) @app.route('/hello',methods=['GET','POST']) def hello_world(): return 'Hello World’ if __name__ == '__main__': app.run() (1)app.run(ho...

Calcifer的博客 205

【图像超分】论文复现:CVPR 2024 | 轻量化超分 | 窗口注意力改进 | CAMixerSR的Pytorch源码复现,跑通源码,获得指标和超分结果,计算复杂度,架构梳理拆解,逐行注释!

本文介绍了超分辨率重建方法CAMixerSR的代码实现与运行指南。文章亮点包括:完整跑通源码获取PSNR/SSIM指标和可视化结果;详细解析模型架构与关键代码注释,帮助快速复现基线模型。实验部分提供了测试配置文件和训练设置说明,支持2K/4K/8K大图像超分和x2/x4轻量化超分。环境依赖PyTorch和BasicSR框架,数据集包含DIV2K等常用基准。测试结果与论文指标一致,可视化输出保存至指定目录。训练配置可自定义数据集路径、GPU数量等参数。该实现突出了CAMixerSR在降低W-MSA复杂度方面的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 438

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Celery Rabbitmq(Docker) Redis(Docker) Flask quick start

from celery import Celeryfrom flask import Flask, requestCeleryapp = Celery('tasks', backend='redis://10.213.70.206:6379', broker='amqp://guest:guest@10.213.70.206:5672//')#app = Celery('t...

pcjdpcq的博客 1314

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PyTorch-2.x镜像文档解读:从Quick Start到生产部署

本文介绍了如何在星图GPU平台上自动化部署PyTorch-2.x-Universal-Dev-v1.0镜像,快速搭建开箱即用的深度学习开发环境。该镜像预装了PyTorch、CUDA及数据科学工具链,用户可基于此高效开展AI模型开发,例如快速完成一个图像分类模型的训练与验证。

weixin_33298352的博客 714

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Flask框架学习系列一:quickstart

Flask框架学习系列一功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 源于flask官方文档,http://flas...

weixin_42156928的博客 388

基于Flask与Python构建个人二次元角色图库:从零搭建轻量级图片管理系统

在Web开发领域,Python因其简洁语法和丰富的生态库,成为快速构建中小型应用的理想选择。Flask作为一款轻量级Web框架,以其灵活性和易用性,尤其适合个人开发者快速实现原型和功能。其核心原理是通过路由、模板和扩展机制,将后端逻辑与前端展示高效结合,实现动态内容管理。这种技术组合在个人内容管理系统中具有显著价值,能够帮助开发者高效处理数据存储、文件上传和动态展示等常见需求。典型的应用场景包括博客系统、个人仪表盘以及图片或资源库的管理。本文聚焦于利用Flask框架,结合SQLite数据库和Pillow图像

weixin_33797791的博客 366

10分钟实战:基于Flask快速对接微信公众号与AI模型接口

在当今的互联网应用中,API接口是实现不同系统间数据交换与功能集成的核心技术。其工作原理是通过预定义的协议和格式,允许客户端向服务器发送请求并获取响应。这项技术的价值在于能够快速整合异构系统的能力,极大地提升了开发效率和系统扩展性。在众多应用场景中,将AI大模型能力通过API接入到用户高频使用的平台(如微信生态),正成为一种主流的技术实践模式。本文聚焦于微信公众平台开发者模式,详细解析如何构建一个高效、稳定的中转服务器,实现用户消息与AI服务间的无缝桥接。文中将深入探讨使用Flask框架快速搭建服务、处理微

weixin_30444105的博客 316

Sealos Devbox与Cursor组合:云原生Python开发实战

容器化开发环境正成为云原生时代的主流选择,其核心原理是通过隔离的运行时封装工具链依赖。以Sealos Devbox为代表的云端开发环境,结合Cursor智能编辑器,构建了从环境配置到代码编写的自动化工作流。这种技术组合尤其适合Python数据分析等场景,能有效解决传统开发中的环境不一致、依赖冲突等问题。通过预置环境模板和AI辅助编程,开发者可快速搭建包含pandas、numpy等数据科学库的标准化环境,并利用端口映射实现即时调试。在金融分析、机器学习等领域,该方案能降低60%以上的环境准备时间,同时Curs

weixin_34111790的博客 511

Cosmos 开源仓库三元搜索(Ternary Search)算法详解:原理、流程与多语言实现

三元搜索(Ternary Search)是一种基于"分而治之"思想、在**有序数组**中查找目标元素的高效搜索算法。它不同于二分搜索每次将区间对半切分,而是将当前搜索区间**等分为三段**,通过两个分界点(mid1、mid2)的比较,把搜索范围缩小到原来的三分之一。本文以 [code/search/src/ternary_search/README.md](https://link.gitcode

gitblog_00806的博客 457

AI应用快速演示设计:3秒加载、2步交互、1秒可视化

AI应用演示本质上是将模型能力转化为用户可感知价值的认知交付过程。它既不是纯技术展示,也不是简单UI美化,而是围绕‘用户首次接触—理解意图—获得结论’这一核心路径展开的工程实践。关键在于通过认知减法压缩信息熵,用预设参数映射替代抽象配置,以进度可视化建立信任,以结构化结果替代原始输出。技术上强调轻量架构(Python内置服务+Vanilla JS)、极致性能(首屏≤3秒、响应≤3秒)、安全可控(本地执行、零外部依赖)与优雅降级(JS失效仍保基础功能)。本文聚焦医疗AI诊断Demo实操,覆盖输入智能提示、流式

weixin_30555515的博客 568

每日GitCode开源项目推荐:5个高效开发神器完整实战指南

项目名称核心优势推荐指数适合人群AtomCode终端轻量、多模型支持⭐️⭐️⭐️⭐️⭐️极客、后端开发、运维代码推理强、综合性能高⭐️⭐️⭐️⭐️⭐️需要私有化大模型的团队长文本处理、低显存占用⭐️⭐️⭐️⭐️文档分析、长流程任务GLM-5.1长程任务、自主规划⭐️⭐️⭐️⭐️⭐️自动化工程、全栈开发Kimi-K2.6多模态视觉、图文生成⭐️⭐️⭐️⭐️前端开发、数据分析师开源的力量就在于共享与进步。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 488

技术实践中的“甜爽”体验:从环境配置到批量处理的完整指南

在软件开发和数据处理领域,追求高效顺畅的体验是工程师的核心诉求。这通常始于对基础运行环境的精细配置,包括操作系统、运行时版本和依赖管理,这是确保工具链稳定性的基石。其原理在于通过隔离与控制,避免环境冲突导致的“苦涩”体验,从而保障后续流程的可靠性。这种实践的技术价值在于将不确定性降至最低,为自动化与规模化应用铺平道路。常见的应用场景涵盖数据处理、模型推理及自动化脚本执行等,其中输入数据的预处理与参数调优是关键环节。本文以打造“甜到心里”的开发体验为脉络,系统阐述了从环境自查、数据清洗到批量任务设计与结果验收

weixin_34274029的博客 409

OpenClaw:本地可编程智能代理框架与Skills开发实践

智能代理(Intelligent Agent)是当前自动化领域的核心范式,其本质是通过感知上下文、理解用户意图、执行确定性动作来替代人工操作。OpenClaw 作为一款开源的本地智能代理框架,不依赖云端API,所有推理、匹配与执行均在终端设备完成,契合‘本地部署’‘离线可用’‘隐私可控’等关键工程诉求。它以 Skills 为基本单元,将传统脚本升级为‘触发-上下文-动作’三要素驱动的可组合能力模块,天然支持群晖Docker部署、Windows IPC通信及局域网服务扩展。本文深入解析 Skills 的设计原

weixin_33713503的博客 431
上一篇: Pandas DataFrame 基础知识
下一篇: Pycharm 多行编辑 变量重命名|小技巧
PearlyWave
博客等级 码龄8年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值