【Flask】FlaskWeb开发上手点滴(01)-入门

python Web开发 flask轻量级Web框架 O、flask介绍 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。 Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。Web应用采用访问和响应的方式和用户进... 阅读详情

⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术、Web3、区块链、答疑解惑、面试辅导以及职业发展。博主创作的 《Web3 实战教程》(点击订阅),已经帮助许多开发者成功铸造 NFT,内容浅显易懂,能够快速对 Web3 相关概念有一个总体认识!

  • python版本:3.5
  • flask版本:0.12
  • jinja2:2.94
  • werkzeug:0.11.15

IDE使用 pyCharm。

1.1、首例

首先从flask初始化的一个例子说起。
打开pyCharm新建一个Flask的项目之后,会初始化一个Flask的程序目录(假设创建一个名为flaskblog的项目)。首先来看flaskblog.py这个文件里的代码:
(包含注释)

#flaskblpg.py

#1、初始化:创建一个程序实例
from flask import Flask

app = Flask(__name__)
#flask用name这个参数决定程序的根目录,以便稍后能够找到相对于程序根目录的资源文件位置。

#2、路由和视图函数:客户端把请求发送给web服务器,web服务器再把请求发送给flask程序实例。程序实例需要知道对每个URL请求运行哪些代码
#所以保存了一个URL到Python函数的映射关系。处理URL和函数之间的关系称为路由。
# @app.route('/')flask是使用程序实例提供的app.route修饰器,把修饰的函数注册为路由。
@app.route('/user/<name>')#尖括号中得内容就是动态部分,任何能匹配静态部分的URL都会映射到这个路由上。
# flask支持在路由中使用int(如:@app.route('/user/<int:id>'))\float\path类型.path类型也是字符串,但不把斜线视作分隔符,而将其当做动态片段的一部分。
def hello_world(name):
# 视图函数,返回的响应可以是包含HTML的简单字符串,也可以是复杂的表单
    return '<h1>Hello,%s!</h1>' %name

#3、启动服务器:程序实例用run方法启动flask集成的开发web服务器。服务器启动后会进入轮询,等待并处理请求。轮询会一直运行,直到程序
#停止,比如按Ctrl-C键。
if __name__ == '__main__':
    app.run(debug=True)
#启用调式模式,ps:flask提供的web服务器不适合在生产环境中使用。

请详细阅读注释,然后在pyCharm中选中flaskblog.py运行(Run),在浏览器中测试。在浏览器地址栏中输入http://127.0.0.1:5000/user/imagineXie进行测试。

1.2程序与请求上下文

请求对象封装了客户端发送的HTTP请求。在多线程服务器中,多个线程同时处理不同客户端发送的不同请求时,每个线程看到的request对象必然不同。Falsk使用上下文让特定的变量在一个线程中全局可访问,与此同时却不会干扰其他线程。

Flask两种上下文:
(1)程序上下文

  • current_app:当前激活程序的程序实例
  • g:处理请求时用作临时存储的对象。每次请求都会重设这个变量

(2)请求上下文

  • request:请求对象,封装了客户端发出的HTTP请求中得内容
  • session:用户会话,用于存储请求之间需要“记住”的值的词典

在使用这些变量时,我们需要先激活(push())程序(app_context())或请求上下文,否则会报错。

1.3请求调度

URL映射是URL和视图函数之间的对应关系。Falsk使用app.route修饰器或者非修饰器形式的app.add_url_rule()生成映射。

Falsk为每个路由都指定了请求方法,这样不同的请求方法发送到相同的URL上时,会使用不同的视图函数进行处理。

1.4请求钩子

请求钩子使用修饰器实现。Falsk支持4种钩子。

  • before_first_request:注册一个函数,在处理第一个请求之前运行。
  • before_request:注册一个函数,在每次请求之前运行。
  • after_request:注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。
  • teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。

1.5响应

HTTP响应中一个很重要的部分是“状态码”,默认为200,表示请求已被成功处理。

Flask视图函数还能返回Response对象。make_response()函数可接受1、2或3个参数,并返回一个Response对象。
eg:

from flask import make_response

@app.route('/')
def index():
 response=make_response('<h1>This document carries a cookie!</h1>')
 response.set_cookie('answer',42)
 return response

有一种名为“重定向”的特殊响应类型。这种响应没有页面文档,只告诉浏览器一个新地址用以加载新页面。
重定向常使用302状态码表示,指向的地址由Location首部提供。Flask提供redirect()辅助函数用于生成这种响应:

from flask import redirect

@app.route('/')
def index():
    return redirect('http://www/example.com')

还有一种响应用于处理错误,由abort函数生成:

from flask import abort
@app.route('/user/<id>')
def get_user(id):
	user=load_user(id)
	if nor user:
	   abort(404)
return '<h1>Hello,%s</h1>'%user.name

以上例子中,如果URL中动态参数id对应的用户不存在,就返回状态码404。

Python web 开发 flask 实践 前文已经介绍了很多关于 python 的算法和脚本的写法,在本文将开启python的 web 的开发,和java 类似的,对于 web 开发也需要引入框架,对于 python 的 web 开发来说常见的有 flask 和 django 两种,在本文中将要介绍的是 flask 框架,相对来说起步简单一点儿。在本文中详细介绍了flask框架搭建web项目的全部流程以及注意事项,相对而言flask比较简单容易上手,主要是前端的配置和数据库的配置以及增删改查等操作。本文中所涉及的代码已经上传至github。 阅读详情

相关推荐

麒麟v10 Ubuntu miniconda3 gdal 发布flask web项目

麒麟v10 Ubuntu miniconda3 gdal 发布flask web项目

qq_33739712的博客 1362

Python web实战 | 使用Flask框架进行Web开发

Flask是一个基于Python的Web框架。它是一个轻量级框架,非常适合小型项目和快速原型开发。Flask提供了一个简单的API,使得开发者可以快速构建Web应用。Flask的灵活性和可扩展性是它受欢迎的原因之一。我们介绍了Flask框架基本使用,并展示了如何使用它们来创建Web应用程序,学习了Flask的基本使用,包括路由和视图函数,以及如何使用Jinja2模板引擎和Flask-WTF插件来处理表单。

Rocky006的博客 1823

Flask学习笔记02:实现用户登录功能

文章目录 一、功能示意图 二、案例演示——用户登录login01 1、创建Python项目login01 2、添加图片素材 3、在templates目录里创建login.html 4、在templates目录里创建success.html 5、在templates目录里创建failure.html 6、在项目根目录里创建主控程序main.py 7、启动主控程序main.py 8...

howard2005的专栏 953

基于Python的Flask Web应用开发

1.安装虚拟环境python -m venv venv 2.激活虚拟环境:.\venv\Scripts\activate 出错就用该命令: set-ExecutionPolicy RemoteSigned 3.安装flask ,其命令:pip install flask 4.在根目录创建app.py from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return 'hello world!'

m0_68911490的博客 1014

别再折腾端口了!Kali Nethunter Kex 图形化桌面连接失败的真正原因与一键修复(附Termux命令)

本文深入分析了Kali Nethunter Kex图形化桌面连接失败的真正原因,包括端口配置变更、依赖缺失和权限问题,并提供了一键修复方案和Termux命令。通过详细的诊断步骤和优化配置,帮助用户快速恢复Kex功能,提升移动安全测试效率。

weixin_42530732的博客 416

UIPath 获取网页元素做遍历点击的实现

UIPath 获取网页元素做遍历点击的实现

geekqian的博客 1万+

Python web实战 | 用 Flask 框架快速构建 Web 应用【实战】

Python web 开发已经有了相当长的历史,从最早的 CGI 脚本到现在的全栈 Web 框架,现在已经成为了一种非常流行的方式。 Python 最早被用于 Web 开发是在 1995 年(90年代早期),当时使用 CGI 脚本编写动态 Web 页面。2004 年 Django 框架发布,它是一个高度模块化的框架,提供了许多开箱即用的功能,使得 Web 开发更加容易和快速。Flask 框架于 2010 年发布,是一个轻量级的框架,它提供了更少的默认功能,但也更灵活,允许开发者根据需要添加或删除功能。

Rocky006的博客 1万+

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 818

【Flask】FlaskWeb开发上手点滴(02)-模板

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 1051

高精度计算Π的值(C语言)

题目要求 限制使用双向链表作存储结构,请根据用户输入的一个整数(该整数表示精确到小数点后的位数,可能要求精确到小数点后500位),高精度计算PI值。可以利用反三角函数幂级展开式来进行计算。 输入5 输出3.14159 思路分析 反三角函数幂级展开式 由公式可以看出,只要计算出来每一个R(n)的值再相加取二倍就可以得到Π的值。 经过推算,要是令R(1)=2,只需要将每个R(n),相加即可。 因...

weixin_46251155的博客 8031

一文读懂,WMS仓库管理系统模块功能

对于仓库管理人员来说,仓储管理是一件需要十分负责、又精细化的工作。

深蓝易网的博客 5216

Python Flask 编程 | 连载 01 - Flask Quickstart

Flask 是一个使用 Python 实现的 Web 开发微框架,具有丰富的扩展,可以非常方便的继承 Jinja2、SQLAlchemy、WTF 等扩展。

pythonhy的博客 1949

SAP FICO 银企直联实战:从配置到异常处理的全流程解析

本文详细解析了SAP FICO银企直联的实战配置与异常处理全流程,涵盖银行主数据搭建、支付类配置、银行接口适配等关键步骤。通过实际案例分享,帮助用户掌握实时付款、余额监控和自动对账等核心功能,提升企业财务效率与安全性。特别针对常见问题如凭证重复付款、前置机UUID冲突等提供了实用解决方案。

weixin_29215815的博客 663

《Flask web开发》思维导图01——初始化

Flask初始化

yekingyan 1240

详解Agent Skills:让AI拥有更多专业能力(什么是Agent Skills?如何创建?如何使用?如何获取?)

本文分享如何将零散指令沉淀为可复用的 AI 能力模块🧩,介绍什么是Agent Skills?如何创建?如何获取?📚

XiaoqiangClub的博客 1269

【VTKExamples】PolyData-1:: CellEdgeNeighbors & CellPointNeighbors 检索Cell边相邻的Cells & 检索Cell点相邻的Cells

本文主要分享VTKExample中两个样例CellEdgeNeighbors.cxx & CellPointNeighbors.cxx,了解VTK中如何对Cell进行邻域检索!输入模型 基于Edge检索结果 基于Point检索结果目录前言1. 基于Edge检索核心代码2.基于Point检索核心代码3.基于Edge检索样例代码4. 基于Point检索样例代码1.

qq_40041064的博客 671

FlaskWeb开发从入门到放弃(二)

第5章 章节五 01 内容概要 02 内容回顾 03 面向对象相关补充:metaclass(一) 04 面向对象相关补充:metaclass(二) 05 WTforms实例化流程分析(一) 06 WTforms实例化流程分析(二) 07 拓展:相关面试题 08 ORM框架概念 09 SQLAlchemy框架快...

weixin_30680385的博客 381

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

知了Python Flask框架全栈开发

课程名称:知了Python Flask框架全栈开发 课程类型:Flask 课程数量:197集 课程代码:有 总共大小:17.86GB 课程目录: |—01.知了Python Flask框架全栈开发 | |—代码和笔记.zip | |—01-Flask视图和URL | | |—课时001.【Flask预热】课程介绍[houtouke.com].flv | | |—课时002.【Flask预热】Fla...

叶落无痕的博客 3568

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Flask Web实战开发教程打造上线可用的多媒体网站

Flask Web实战开发教程打造上线可用的多媒体网站 课程地址:Python Flask Web开发 - 播单 - 优酷视频 优酷播单,超清视频,推荐大家使用优酷电脑客户端和手机客户端观看,电脑客户端可以实现倍速播放喔。 多媒体网站总共包含了 用户管理系统, 四大内容板块(图片,富文本,音乐,视频)系统 和 后台管理系统。前端界面用BootStrap开发。 用户管理系统 主要功能:实现...

海尔兄弟的博客 3672

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Flask Web开发从入门到放弃(一)

第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLask框架之用户管理系统示例(一) 09 Flask框架之用户管理系统示例(二) 第2章 ...

weixin_30298497的博客 431

flask web_01

阅读实践flask web一书中第31页,书中写的“因此只需引入moment.js即可”一处有误,需要在{%block head%}中引用moment.js代码如下:{% block head %} {{ super() }} {{ moment.include_jquery() }} {{ moment.include_moment() }} {% endblock %}...

优快云_Gjx的博客 259

网站后端.Flask.实战-社交博客开发-赋予角色?

1.用户在注册时,会被赋予适当的角色,管理员可通过FLASK_ADMIN全局变量中的邮件地址识别,其它用户使用默认角色 FlaskWeb/app/models.py #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors:...

chunnidong6528的博客 203

【Python百日进阶-WEB开发-冲進Flask】Day181 - Flask简单流程

文章目录一、项目环境和结构搭建1.1 新建虚拟环境1.2 安装Flask1.3 配置Python解释器二、后端知识要点2.1 Flask 文档2.2 实例化flask对象2.2.1 新建独立的配置文件settings.py2.2.2 实例化flask对象时加载配置文件2.3 基本路由2.3.1 常用路由及唯一性2.3.2 路由底层调用2.4 路由规则2.4.1 字符串路由2.4.2 path路径路由2.4.3 数字(整数int、浮点数float)路由2.4.4 多参数路由2.4.5 UUID路由2.5 返回

专注于医院数据分析技术与系统开发的创作与分享。 540

seo这样玩python课程_python教程

优品课堂python Flask从入门到精通视频精讲,价值2400元,分享给大家,老师讲的非常好,通俗易懂。课程目录如下:优品课堂python Flask从入门到精通视频目录如下:01-计算机基础常识.mp402-Python语言概览、安装与运行.mp403-Python 变量、数据类型及存储.mp404-Python 常用数据类型概览.mp405-数值与字符串.mp406-列表list.mp40...

weixin_39689819的博客 171

零基础自学Python要多久才能学会?

学习Python开发的周期因人而异,由于基础、学习效率不同有的人学习进度快,需要六个月到一年不等,有的人自律性较差可能需要更久的时间才能学会,今天小编分享下6个月学习周期内的自学Python的学习路线。

2201_75362610的博客 337

WSGI学习笔记

关于flask建立web时对于wsgi的心得

weixin_63151583的博客 951
上一篇: 【Python】Python3.X笔记
下一篇: 【Flask】FlaskWeb开发上手点滴(02)-模板
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值