Flask学习笔记(3)--路由

 0x01 参数传递

传递参数的语法是: /<参数名>/,然后在视图函数中,也要定义同名的参数。

参数的数据类型:

1、如果没有指定具体的数据类型,那么默认就是使用string 数据类型。

2、int 数据类型只能传递int类型。

3、float 数据类型只能传递float类型。

4、path 数据类型和string 有点类型,都可以接收任意的字符串,但是path可以接收路径,也就是说可以包含斜杠。

5、uuid 数据类型只能接收符合uuid的字符串。uuid是一个全宇宙都唯一的字符串,一般可以用来作为表的主键。

6、any 数据类型可以在一个url中指定多个路径。

接收用户传递的参数:

1、第一种:使用path的形式(将参数嵌入到路径中)

2、第二种:使用查询字符串的方式,就是通过 ?key=value的形式传递的。

3、如果出于SEO优化的考虑,推荐第一种。

# _*_  coding:utf-8 _*_
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/list/')
def article_list():
    return 'article list'

@app.route('/p/<id>/')
def article_detail1(id):
    return u'您请求的文章是:%s' % id

@app.route('/page/<int:article_id>/')
def article_detail2(article_id):
    return u'您请求的文章是:%s' % article_id

@app.route('/article/<path:test>/')
def test_article(test):
    return 'test article: %s' % test

@app.route('/u/<uuid:user_id>')
def user_detail(user_id):
    return u'个人用户信息: %s' % user_id

import uuid
print uuid.uuid4()

#/blog/<id>/
#/user/<id>/

@app.route('/<any(blog,user):url_path>/<id>/')
def detail(url_path,id):
    if url_path == 'blog':
        return u'博客详情:%s' % id
    else:
        return u'用户信息:%s ' %id

from flask import  request
@app.route('/d/')
def d():
    wd = request.args.get('wd')
    ie = request.args.get('ie')
    return ie

#通过字符串的方式传递参数
#/d/?wd=python


if __name__ == '__main__':
    app.run()

 

 

 

正则路由转换器

from flask import Flask,render_template
from werkzeug.routing import  BaseConverter

class RegexConverter(BaseConverter):
    def __init__(self,url_map,*items):
        super(RegexConverter,self).__init__(url_map)
        self.regex=items[0]

app = Flask(__name__)
app.url_map.converters['regex']=RegexConverter

@app.route('/user/<regex("[a-z]{3}"):user_id>')
def user(user_id):
    return  'User %s' % user_id

if __name__ == '__main__':
    app.run(debug=True)

 登录模块:

from flask import Flask,render_template,request
app = Flask(__name__)
@app.route('/login',methods=['GET','POST'])
def login():
    return render_template('login.html',method=request.method)

if __name__ == '__main__':
    app.run(debug=True)

上传

@app.route('/upload',methods=['GET','POST'])
def upload():
    if request.method=='POST':
        f=request.files['file']
        basepath = path.abspath(path.dirname(__file__))
        upload_path=path.join(basepath,'static\\uploads')
        f.save(upload_path,secure_filename(f.filename))
        return redirect(url_for('upload'))
    return render_template('upload.html')

windows平台上,flask上传文件出现IOError: [Errno 13] Permission denied: 'D:\\test\\myproject\\static\\uploads'

解决方法:

第一种:

@app.route('/upload',methods=['GET','POST'])
def upload():
    if request.method=='POST':
        f = request.files['file']
        basepath = path.abspath(path.dirname(__file__))
        filename = secure_filename(f.filename)
        upload_path=path.join(basepath,'static','uploads',filename)
        f.save(upload_path)
        return redirect(url_for('upload'))
     return render_template('upload.html')
第二种
@app.route('/upload',methods=['GET','POST'])
def upload():
    if request.method=='POST':
        f = request.files['file']
        filename = secure_filename(f.filename)
        f.save(path.join('static/uploads',filename))
        return redirect(url_for('upload'))
    return render_template('upload.html')

404 状态

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

 

转载于:https://www.cnblogs.com/xiaozi/p/10376024.html

全网首发--Unet3+改进16:在不同位置添加RepLKBlock超大卷积核 本文提出了一种基于大核卷积的神经网络架构RepLKNet,旨在缩小CNN与ViTs之间的性能差距。通过重新审视CNN中的大核设计,研究证明使用少量大卷积核替代多个小核能获得更强大的性能。提出的RepLKNet采用31×31大卷积核,在ImageNet和下游任务上取得了与SwinTransformer相当或更好的结果,同时具有更低延迟。文章详细介绍了实现步骤:(1)创建RepLKBlock模块文件;(2)在模型层中添加注意力机制;(3)在UNet模型中集成RepLKBlock;(4)完成训练流程。该方法展现了 阅读详情

相关推荐

对冲策略与马丁结合ea的编程实践(五)核心是把两个品种合成一个新品种

在外汇、数字货币、期货交易甚至赌博中,马丁策略、网格策略是最常用的策略,也是最容易被理解的策略,但是如何克服单边行情、极端行情,是使用马丁策略最为头疼的事情,如加大间距、加大资金量,只能缓解,并不能根本解决这样的情况,所以使用时大部分时候都心里没底。 有没有一种正确的思路,让行情控制在震荡范围以内呢,这是今天我要向大家分享的一个思路,那就是对冲。大家看下图: 大家可以看到欧美(EURUSD)和镑美(GBPUSD),这两个品种,大部分时候走势是一致的,那么我们有没有可能把他们两个品种进行一下合成,比如买0.

omidsky的博客 3738

Flask上传本地图片并在页面上显示

  使用Flask远程上传图片到服务器,并把获取到的图片显示到前端页面上。   方法一   目录结构: 'static/images' 文件夹用来存放上传过来的图片 ‘templates’文件夹下的两个html文件定义显示页面 upload_pictures.py 是工程代码 upload_pictures.py 代码: # coding:utf-8 from flask...

牧野的博客 6万+

一位海外开发者的 OpenSPG KAG 实践分享

KAG 是一个以创建和操作知识图谱为核心的框架。知识图谱是数据之间相互关联的可视化和结构化表示,对于搜索引擎、推荐系统和机器学习等应用至关重要。KAG 的目标是提供一个强大的平台,使开发者能够:轻松构建图谱;通过增强算法丰富数据;集成人工智能,以进行更精确的推理。通过理解 KAG,可以明显看出,这个框架旨在帮助从初学者到专业开发者,在项目中创造更优的解决方案。它在简便性和集成方面的优势,使其成为下一代基于数据的应用程序的前景工具。

金融机器智能社区 3405

Django学习过程记录(一)

这篇文章并不是系统地一个个讲述django的内容,而是从建立Django项目入手,到一步步建立网站的过程,中间会记录许多网站开发的技巧,并将Django的内容单独列出,读者可以通过标题目录来查找自己对Django中使用的困惑,也可以按流程一步步阅读,跟着进行Django网站开发。

GentleCP的博客 911

嵌入式硬件实战:RC、LC与RL滤波电路的设计与选型指南

本文深入探讨了嵌入式系统中RC、LC与RL滤波电路的设计与选型策略。通过生活化比喻和实战案例,详细解析了三种滤波电路的工作原理、应用场景及工程注意事项,帮助工程师根据电流大小、频率特征和成本预算选择最优方案,提升嵌入式硬件设计的稳定性和抗干扰能力。

kiwi8的博客 284

【无人机智能避障】基于深度强化学习的城市复杂环境路径规划实战

本文探讨了基于深度强化学习的无人机在城市复杂环境中的智能避障与路径规划。针对传统算法难以应对动态与非结构化障碍的痛点,文章详细介绍了如何利用DQN算法,通过设计合理的状态空间、奖励函数,并结合经验回放、目标网络等技巧,训练无人机自主学会在楼宇间安全、高效飞行的策略。

weixin_28224217的博客 732

Flask教程笔记(1)URL与视图

要求:python基础,html/css基础,数据库表设计 工具:Pycharm2016,sublime,MySQL 目标:熟悉Flask,熟悉web开发流程,能独立开发Flask项目 安装:python2.7.13 x64 环境变量:path中添加C:\Python27;C:\Python27\Scripts 虚拟环境安装:管理员启动cmd pip install virtualen...

就这样吧 204

【专业书1】量化交易——从入门到精通

股票季节性策略几乎失效了,但商品期货的仍有效,因为其季节性需求源于真实的经济需求而非投机。交易策略获利的前提:交易价格处于均值回归(低价时买入)或动量状态(降价时先做空后以更低价买入),否则在随机游走状态下是无法有效交易的。构建交易策略实际上是在决定:在特殊条件、特定时间尺度下价格趋势的呈现(均值回归/趋势走势),以及用什么价格作为初始判断的参考价格。如果以高夏普比率为目标,需要更高的交易频率:基于大数定律,押注越多,偏离均值收益的偏差就越小。买同比最好的股票,卖同比最差的股票。但在不同的时间尺度下可以。

weixin_44589682的博客 1545

flask学习笔记(八):mySQL数据库安装

1、先到mySQL数据库官网https://dev.mysql.com/downloads/windows/installer/8.0.html下载数据库安装包 2、开始安装mysql 此时mySQL在电脑上安装完毕 3、然后使用pip Install mysql-python安装mysql 但是一般会遇到这个错: 此时要去...

观月执白 587

环境仿真软件:MIKE 21_(9).MIKE21水生植物模块介绍

MIKE21支持多种水生植物的模拟,用户需要在配置文件中定义植物种类及其特性。</</</</</</</</</假设我们需要定义一种新的水生植物“水葫芦”(Water Hyacinth),并将其特性写入配置文件。# 创建XML根元素# 定义新的植物种类# 生成XML文件假设我们需要分析仿真的水流速度变化,并绘制水流速度随时间变化的图。# 读取NetCDF文件# 获取水流速度数据# 获取时间数据# 绘制水流速度随时间变化的图plt.xlabel('时间 (天)')

kkchenjj的博客 726

YOLOv13改进策略【多YAML融合】| HWD + DSC3k2_PConv + Detect_MBConv

本文记录的是利用HWD + DSC3k2_PConv + Detect_MBConv改进YOLOv13,分别涉及骨干、颈部和检测头部分的改进。一方面按照此配置,其工作量及创新程度能够满足论文发表的需求,另一方面是一些难以融合多个YAML的举例,以帮助大家理解如何将多个YAML整合到一个YAML中。小波下采样:一个简单但有效的语义分割下采样模块。块由两个主要块组成:无损特征编码块和特征表示学习块。HWD模块与其他下采样模块对比:保留信息能力:传统的下采样方法(如最大池化、平均池化和步幅卷积等)会导致信息丢失,

Limiiiing的博客 495

anonymous的flask学习笔记(3)——flask设置路由动态参数和重定向操作

文章目录flask设置路由动态参数和重定向操作路由动态参数flask路由自动重定向(了解即可,手动设置路由重定向才是重点)flask自动重定向示例路由注册机制flask手动设置路由重定向 flask设置路由动态参数和重定向操作 路由动态参数 通过视图函数绑定的url路径来传递动态参数 获取int类型动态参数,此时前端传入的动态参数必须是int类型@app.route("/param/<int:param>") def param_int(param): return f"<h1

个人博客:https://www.wenbin.org.cn/ 1490

ArcGIS Pro 3.4 二次开发 - 知识图谱

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作知识图谱的方法。主要包含两大功能模块:1) 知识图谱数据存储操作,包括建立连接、获取图层、检索要素类与表定义、ID转换等;2) 知识图谱数据模型管理,如获取数据模型属性、标识符信息等。代码示例详细展示了如何使用C#通过QueuedTask异步任务与知识图谱服务交互,包括异常处理、数据转换等常见操作场景。所有示例均采用using语句确保资源释放,并遵循ArcGIS Pro SDK的最佳实践。

Winemonk 762

Flask 路由

Flask 路由是 Web 应用程序中将 URL 映射到 Python 函数的机制。Flask 路由是 Flask 应用的核心部分,用于处理不同 URL 的请求,并将请求的处理委托给相应的视图函数。以下是关于 Flask 路由的详细说明,包括路由的定义、参数、方法和规则等。基本路由定义:from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Welcome to the Home Page

zhao1iyong的博客 1911

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python-flask框架学习笔记(一)--route(路由)

flask是一个常用的轻量级的web框架,把前端后端连接起来,我会慢慢把自己的手写笔记都上传到博客,与大家分享学习经验~ 1.flask中的路由 路由就是用来匹配用户的请求地址以及对应的视图函数 举个栗子 from flask import Flask app = Flask(__name__) @app.route('/') def f1(): return "这是第一个路由" @...

weixin_44923175的博客 4274

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

如何处理Flask中的路由

在Flask中,使用装饰器来定义路由。这个装饰器将URL路径与视图函数关联起来。视图函数是处理请求并返回响应的函数。在这个例子中,当用户访问应用的根URL()时,home函数会被调用,并返回字符串作为响应。

sheji888的专栏 1645

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Flask】二、Flask 路由机制

在Web应用中,路由决定了用户请求的URL应该由哪个函数来处理。当用户在浏览器中输入一个URL或者点击一个链接时,Web服务器需要知道如何处理这个请求,这就是路由的作用。

naihe_fish的博客 1060

Flask学习笔记

对flask的初步认识

niubikls的博客 1131

Flask学习笔记 - 项目结构 + 路由

待业家中继续学习。@app.route('/') # 装饰器,用于定义路由。/ 表示根 URL。

ioSugar 811

flask访问404_FLASK博客系列3——路由

​ 断更了几天,我又回来了。 今天我们来讲讲路由。这个路由可不是我们家里用的路由,Flask路由规则都是基于Werkzeug的路由模块的,它还提供了很多强大的功能。现代 web 应用都使用有意义的 URL ,这样有助于用户记忆,网页会更得到用户的青睐, 提高回头率。 从上篇文章我们知道,使用 route() @app.route('/') def hello_world(): ...

weixin_42301008的博客 4666

【Flask】 路由入门

路由介绍 现代 Web 应用程序使用有意义的 URLs 去帮助用户。 如果一个网站使用有意义的 URL 能够让用户记住并且直接访问这个页面,那么用户会更有可能再一次访问该网站。 正如上面所说,route 装饰器是用于把一个函数绑定到一个 URL 上 接下来我们实现: 访问根目录 ‘/’ ,返回 ’ Root directory’ 访问 ‘/hello`' ,返回 '`Hello, World!’ from flask import Flask app = Flask(__name__) @app.r

Create value with coding 1万+

Flask学习笔记:路由和反向路由

#-*- coding:utf-8 -*- from flask import Flask, request, url_for app = Flask(__name__) # 路由 @app.route("/") # 视图函数 def index(): return "&lt;h1&gt;Hello World!&lt;/h1&gt;" # 新的user路由 @app.route("/u...

qq_41805514的博客 2250

Flask框架入门(3)路由

从最简单的Flask例子说起,介绍一些基本的概念,包括路由,模板,请求跟响应,错误处理。 目录 一个最简单的Flask应用 运行失败原因 带参数的路由 URLS唯一性跟重定向行为 多URL路由 设置请求方式 构建URL 一个最简单的Flask应用 # 导入Flask依赖 from flask import Flask # 创建一个Flask实例,参数__name__是模块或...

繁星点点~ 703
上一篇: Flask学习笔记(2)--最简单的小应用
下一篇: Window 产品密钥
an0708
博客等级 码龄12年 30粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值