4-5.配置信息和路由信息

news/2024/11/9 9:59:00/

一、配置信息

app.run()的参数

  • 参数1:host,如果我们不指定,默认值是127.0.0.1。
  • 参数2:port,如果我们不指定,默认值是5000。
  • 参数3:debug,调试模式,如果不指定,默认值是False。
    • 如果设置为True,有两个好处:
      1. 如果在运行过程中,直接改动代码了,就不需要重新启动程序,只要Ctrl+S保存即可部署程序。
      1. 如果程序报错了,会有友情提示。
from flask import Flaskapp = Flask(__name__)@app.route('/hh')
def index():print(1/0)return "<h2>this is index</h2>"if __name__ == "__main__":app.run(host="127.0.0.1", port=5000, debug=True)

在这里插入图片描述
在这里插入图片描述

二、路由信息

1、在访问路由的时候指定参数

  • 格式:@app.route(“/<类型:变量名>”)
    • 常见的类型:
      1. 整数:int
      1. 小数:float
      1. 字符串:path(默认就是path)
"""
在访问路由的时候指定参数- 格式:@app.route("/<类型:变量名>")
- 常见的参数类型- 整数 int- 小数 float- 字符串 path     默认就是path
"""""
from flask import Flaskapp = Flask(__name__)# 接收一个整数
@app.route('/<int:num>')
def get_intnumber(num):return "the age is %s" % num# 接收一个小数
@app.route('/<float:num>')
def get_floatnumber(num):return "the float is %s" % num# 接收一个字符串
@app.route('/<path:str1>')
def get_pathnumber1(str1):return "the path is %s" % str1# 接收一个字符串
@app.route('/<str1>')
def get_pathnumber2(str1):return "the path is %s" % str1if __name__ == "__main__":app.run(debug=True)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、自定义参数类型(自定义转换器)

  • 应用情况:
    • 如果系统提供的int、flost、path等参数满足不了需求的时候,我们需要自定义。
    • 之所以int、float、path可以接收不同的数据类型,是因为系统已经提供好对应的转换器了。
  • 自定义转换器的格式:
      1. 定义类,继承自BaseConverter。
      1. 重写init方法,接收来两个参数。
      1. 初始化父类成员变量,还有子类自己的规则。
      1. 将转换器类,添加到系统默认的转换器列表中。
"""
- 自定义转换器的格式:- 1. 定义类,继承自BaseConverter。- 2. 重写init方法。- 3. 初始化父类成员变量,还有子类自己的规则。- 4. 将转换器类,添加到系统默认的转换器列表中。需求:只接收3位整数
"""""
from flask import Flask
from werkzeug.routing import BaseConverterapp = Flask(__name__)# - 1. 定义类,继承自BaseConverter。
class MyRegexConverter(BaseConverter):# 下面这样直接指定匹配规则,不够灵活,具体匹配什么规则应该交给路由# regex = "\d{3}"       # 仅匹配3位整数# - 2. 重写init方法。接收两个参数def __init__(self, map, regex):# - 3. 初始化父类成员变量,还有子类自己的规则。super(MyRegexConverter, self).__init__(map)self.regex = regex# - 4. 将转换器类,添加到系统默认的转换器列表中。
app.url_map.converters["haha"] = MyRegexConverter# 匹配三位整数
# 使用haha(‘规则’),实际上是传递了两个参数,参数1:app.url_map,参数2:括号中写的正则表达式
@app.route('/<haha("\d{3}"):number>')
def get_three_number(number):return "the three number is %s" % number# 匹配四位整数
@app.route('/<haha("\d{4}"):number>')
def get_four_number(number):return "the four number is %s" % number# 匹配一个手机号
@app.route('/<haha("1[3-9]\d{9}"):phone>')
def get_phone_number(phone):return "the phone is %s" % phoneif __name__ == "__main__":app.run(debug=True)

http://www.ppmy.cn/news/185298.html

相关文章

Redis核心数据结构-01

1、String String 数据结构是简单的key-value类型&#xff0c;value其实不仅是String&#xff0c;也可以是数字。 常用命令&#xff1a;get、set、incr、decr、mget等。 应用场景&#xff1a;String是最常用的一种数据类型&#xff0c;普通的key/ value 存储都可以归为此类&…

计算机科学与技术(嵌入式)四年学习资料_文件目录树

说明&#xff1a; 资料内容主要包括&#xff1a;计嵌专业2019级大学四年主要科目的各种电子资料&#xff0c;有电子实验报告、课程设计报告、课程设计项目、整理复习笔记、电子书、ppt、练习题、期末试卷、部分课程软件资源、科创项目&#xff0c;职业生涯规划书&#xff0c;大…

格力要做芯片?现实并非那么美好

格力电器董事长董明珠每次讲话都能引发媒体的高度关注&#xff0c;最近她又宣称要做芯片了&#xff0c;甚至表示即使花500亿也要把芯片做出来&#xff0c;不过现实是做芯片并非如她所想的那么容易。 做芯片不容易 以国产手机企业实力最强的华为为例&#xff0c;其研发移动芯片长…

【通信-无线】无线设备芯片

手机芯片 分为三块&#xff0c;射频收发机&#xff08;RF transceiver&#xff09;&#xff0c; 基带调制解调器&#xff08;baseband modem&#xff09;以及应用处理器&#xff08;AP&#xff1a; application processor&#xff09; 参考&#xff1a;http://m.elecfans…

华为网络设备交换机路由器查看堆叠状态检查命令方法

描述&#xff1a;华为网络设备交换机路由器查看堆叠状态检查命令方法 命令&#xff1a; display stack

cisco设备的mib库

1.进入到思科官网技术支持下的工具和资源页面 https://www.cisco.com/c/zh_cn/support/web/tsd-most-requested-tools.html http://tools.cisco.com/Support/SNMP 2.搜索需要的mib库的设备型号&#xff0c;例如c240 m3硬件设备 3.搜索mib 4.点进去后往下翻可以翻到该设备mib库…

DELL TPM介绍

可信平台模块 (TPM) 技术旨在提供基于硬件的安全相关功能。TPM 芯片是一种安全的加密处理器&#xff0c;旨在执行加密操作。芯片包含多重物理安全机制&#xff0c;具有防篡改功能&#xff0c;恶意软件无法篡改TPM的安全功能。使用 TPM 技术的一些主要优势是您可以&#xff1a; …

戴尔服务器显示器接口类型,拒绝凌乱桌面 Type-C接口显示器的魅力

办公桌上的线材可能让你感到凌乱&#xff0c;而现在Type-C接口已经成了最好的解决方案&#xff01;简洁、美观又方便&#xff0c;利用一根小小的线材就可以实现音频视频的传输&#xff0c;对于喜欢桌面整洁的笔记本用户来说是再适合不过了&#xff01; Type-C接口正面反面相同&…