Flask03_路由传参

2023-11-05

# encoding=utf-8
"""
1、@app.route("/路由匹配/"):代表资源在服务器上的位置
(1)路由:Flask根据http请求的url在路由表中和定义好的进行匹配,找到对应的函数处理这个请求,此过程保存一个url到函数的映射关系称之为路由router
(2)Flask通过装饰器@app.route("路由后半部分")来定义,route内部代码会将其余前面的url拼接成一条完整的路由
(3)通过装饰器装饰在视图函数上,是指向视图函数的标志,用户可以通过url来访问,服务器通过url路由引导获取到:@app.route("/地址(一节)/")
(4)路由编写规则
    A、开头必须"/":强制规则,开头没有"/"是不合法的
    B、结尾添加"/":标准的url,类似文件夹,访问无"/"的url时,Flask会重定向,自动在结尾添加
    C、结尾没有"/":类似文件,访问添加了"/"的url时,会报404错误,可以保持url唯一,帮助搜索引擎避免重复索引同一页面
    D、路由是可以重复的
(5)根目录:网站服务启动的目录就是根目录
(6)对于视图函数,代表视图函数的路由;对于静态资源,代表放在服务器当前web服务的根目录的位置
2、视图函数
(1)视图是处理请求,返回响应的代码块,函数名字不能重名
(2)函数的名字与路由的名字可以不一致(一般为了简明,保持一致)
3、路由讲解
(1)route装饰器:装饰视图函数,更加方便、优雅地写应用的URL
    def route(rule, **options):
        def decorator(f):
            add_url_rule(rule, f.__name__, **options)
            view_functions[f.__name__] = f
            return f
        return decorator
    A、首先会调用add_url_rule 法,将装饰器中的URL规则添加进Map实例中,视图函数的名字会作为endpoint进行传递
    B、在应用的view_functions中增加endpoint和视图函数的对应关系,可以在请求成功时方便地调用对应的视图函数
(2)add_url_rule
    def add_url_rule(rule, endpoint, **options):
        options['endpoint'] = endpoint
        options.setdefault('methods', ('GET',))
        url_map.add(Rule(rule, **options))
    A、用来添加url与视图函数的映射,默认会使用view_func的名字作为endpoint,可以将URL和视图函数关联起来
    B、使用url_for时,要看映射时的endpoint参数,只要传递一条规则rule和一个endpoint即可
    C、可以传递一些关键字参数:路由rule、访问点endpoint、视图函数func
    D、调用方法后,会调用Map实例的add方法,会将URL规则添加进Map实例中
    >> app.add_url_rule(rule=路由,view_func=视图函数,endpoint=访问点)
(3)访问点endpoint:做反向解析
    A、视图函数中关于url_map视图的映射应该是:[url->methods->endpoint]
    B、methods=["POST","GET"]):methods用来限制请求方式
    C、利用url_map找到所请求URL对应的endpoint访问点(通过url地址映射到端点endpoint),利用view_functions表(默认空字典,存储endpoint:view_func键值对)查找到访问点对应的视图函数,最终匹配到函数,执行响应的功能函数
    D、一个实例对象app的本质过程是通过url先找到endpoint的值(url_map映射),然后endpoint在字典view_functions中找到视图函数view_func,同一实例对象app中试图函数名可以相同,但endpoint不能相同
    E、url_map:维护URL规则和endpoint的映射
    F、view_functions={键:值}:维护endpoint和视图函数的映射
    G、默认访问点:使用route装饰器注册路由时,默认使用被装饰函数的 函数名作为访问点
    H、自定义访问点:在使用route装饰器或调用add_url_rule()方法注册路由时,使用endpoint关键字参数可以改变默认行为
    I、app.add_url_rule("/index2/<int:yy>",view_func=index2):Flask中只有有名分组,yy用于接收参数
    app.add_url_rule("/", view_func=index,endpoint="index12333444",methods=["POST","GET"])
    def index1():
        print(url_for("index12333444"))
        return "123"
    app.add_url_rule("/index1",view_func=index1,strict_slashes=False,redirect_to="/index2")
    def index2(yy):
        print(yy)
        return "123445"
    #只有有名分组
    app.add_url_rule("/index2/<int:yy>",view_func=index2)
    if __name__ == '__main__':
        app.run()
(4)变量规则
    A、通过把url的一部分标记为<variable>就可以在url中添加变量,标记的部分会作为关键字参数传递给函数
    B、通过使用<converter:variable>,可以选择性的加上一个转换器,为变量指定规则
        from markupsafe import escape
        @app.route('/user/<user>')
        def show_user(user):
            return f'escape转变:{escape(user)}'
4、Restful URL
(1)Restful URL可以看做是对URL参数的替代,得到的变量默认为str对象
(2)内置转换机制可以在route中指定转换类型,传递的数据类型若与指定类型不同时,会得到404丢失页面响应
(3)内置转换机制支持int整数、float浮点数、path路径类型数据
(4)定义转换器
    A、自定义的转换器是一个继承werkzeug.routing的BaseConverter类
    B、to_python方法用于将url中的变量转换后供被@app.route包装的函数使用,返回值会传递到view函数中作为参数
    C、to_url方法用于flask.url_for中的参数转换,返回值会调用url_for函数的时候生成符合要求的url形式
    D、app.url_map属性:是一个定义在werkzeug.routing模块中的Map类,为了给应用增加一些URL规则,生成对应的正则表达式进行URL匹配
    E、app.url_map.converters['自定义规则名称'] = 自定义转换器类,将自定义的类映射到app.url_map.converters
(5)路由正则
    A、写类,继承BaseConverter
    B、注册:app.url_map.converters['regex'] = RegexConverter
    C、使用:@app.route('/index/<regex("\d+"):nid>'),正则表达式会当作第二个参数传递到类中
    from flask import Flask, views, url_for
    from werkzeug.routing import BaseConverter
    app = Flask(import_name=__name__)
    # 自定义URL匹配正则表达式
    class RegexConverter(BaseConverter):
        def __init__(self, map, regex):
            super(RegexConverter, self).__init__(map)
            self.regex = regex
        # 路由匹配时,匹配成功后传递给视图函数中参数的值
        def to_python(self, value):
            print("to_python",type(value),value)
            return int(value)
        # 使用url_for反向生成URL时,传递的参数经过该方法处理,返回的值用于生成URL中的参数
        def to_url(self, value):
            print("to_url", type(value), value)
            val = super(RegexConverter, self).to_url(value)
            return val+"123"
    # 添加到flask中
    app.url_map.converters['regex'] = RegexConverter
    @app.route('/index/<regex("\d+"):nid>')
    def index(nid):
        print("nid",type(nid),nid)
        print(url_for('index', nid='888'))
        return 'Index'
    if __name__ == '__main__':
        app.run()
5、url_for(视图函数名,传递参数值)反转视图函数
(1)用于构建指定函数的url
    A、把函数名称作为第一个参数
    B、可以接受任意个关键字参数,每个关键字参数对应url中的变量
    C、未知变量将添加到url中作为查询参数
    D、url反转:根据视图函数名称得到当前所指向的url
(2)为什么不写死,而是反转

(1)构建url原理
    A、使用endpoint通过反向机制构建URL路径,可以以软编码的形式生成url,提供开发效率
    B、最简单的用法是以视图函数名作为参数,返回对应的url
    C、若想要完整的URL,可以设置_external为Ture
        url_for('static',_external=True)
(2)加载访问静态文件:指定目录下static文件,使用/static访问
    文件存储在static/style.css
    url_for('static', filename='style.css')
(3)指定函数构造URL
    A、接受函数名作为第一个参数
    B、接受URL规则中对应的变量作为参数
    C、未知变量部分会添加到URL末尾?后作为查询参数
(4)构建URL而不是拼URL的原因
    A、反向构建通常比硬编码的描述性更好:允许一次性修改URL
    B、URL构建会转义特殊字符和Unicode数据
    C、若应用不位于URL根路径,url_for()会进行妥善处理(不是/,而是/myapp)
(5)总结简述
    A、视图函数:参数是endpoint,默认函数名view_func和端点endpoint相同(要反转的url就是视图函数所在路由)
    B、传递参数:传入在路由中已经定义的参数,路由直接拼接;传入在路由中没有定义的参数,会以查询字符串('?参数名=参数值')的形式反转出来
    C、如果修改url,并不修改url对应的函数名,就不用到处去替换url;url_for会自动处理特殊字符,不需要手动处理
    D、示例:url_for('static',_external=True,filename='imgs/test.png')
        返回的url是 http://localhost/static/imgs/test.png
(6)附带参数讲解
    A、endpoint:URL的端点(默认函数名view_func)
    B、values:URL的变量参数
    C、_external:设置为True则生成一个绝对路径URL
    D、_scheme:一个字符串指定所需的URL方案(_external必须为True,否则抛出ValueError)
    E、_anchor:给URL添加一个mao
    F、_method:显示地调用HTTP方法
(9)url_for和redirect区别
    A、url_for用来拼接url:可以使用程序url映射中保存的信息生成url
    B、url_for()函数最简单的用法是以视图函数名作为参数,返回对应的url
        调用url_for('index')得到的结果是:index视图的路由"/"
    C、redirect是重定向函数,输入一个url后,自动跳转到另一个url所在的地址
(10)test_request_context()告诉Flask正在处理一个请求,并没有真正的请求
    with app.test_request_context():
        print(url_for('index'))
        print(url_for('login'))
        print(url_for('login', next='/'))
        print(url_for('profile', username='John Doe'))
6、动态路由介绍
(1)Flask根据HTTP请求的URL在路由表中匹配定义好的路由规则,找到对应的函数处理请求,查询路由表的这个过程需要一个URL到函数的映射关系,这个映射关系就称之为路由
(2)路由和函数需要的名称可以不对应,对应是为了提高可读性
(3)路由不可以合并,每个路由都是一个装饰器,被装饰的函数,为视图函数,名称不可以重复
(4)由app.route方法安装装饰器语法定义,flask的路由必须有/,否则会报ValueError的错误
(5)网站开发时,访问内容变化,路由随之变化,网站的资源也会随之变化
(6)可以通过路由修改查询的内容,本身可以把接收数据中的一部分传递给视图函数
(7)前端部分可以通过页面的a标签的href属性指向目的路由去跳转页面
(8)在路由上,变量数据是由<>包围的部分,匹配到的内容会作为参数传递给视图函数(名称一致)
(9)Flask路由需要使用装饰器的形式定义,路由定义必须以’/’ 开头
7、路由传参(动态路由)
(1)将路由参数中的部分数据使用<>包含,可以传递参数
(2)/<string:data>/字符串(默认):数字、字符串-->字符串类型
(3)/<int:data>/整数:整数-->整数类型
(4)/<float:data>/浮点数:浮点数-->浮点数类型
(5)/<path:data>/路径:路径(多/分割)-->字符串类型
(6)/<uuid:data>/uuid:唯一标识符-->uuid字符串
"""
# 导入模块
from flask import Flask

# 创建web服务器(http)实例:内置方法__name__是预定义变量,被设置为使用本模块,html存放的路径,静态文件的路径
app = Flask(__name__)

# route装饰器装饰视图函数
@app.route("/default")
# 视图(编写功能)
def default():
    # 访问页面的时候,这一部分会作为参数传入视图函数,默认数据类型是字符串
    return '默认不传数据'


# route装饰器装饰视图函数
@app.route("/point", endpoint='自定义访问点')
# 视图(编写功能)
def point():
    # 访问页面的时候,这一部分会作为参数传入视图函数,默认数据类型是字符串
    return '设定访问点'


# 整数类型参数限制,浏览器地址输入整数时传递
@app.route("/index/<int:age>/")
def int_demo(age):
    # 访问页面的时候,数据类型会自动将参数转换成整数类型
    return f'查询年龄:我{age}岁了'


# 字符串类型参数限制,浏览器地址输入整数时传递(默认传递类型)
@app.route("/index/<string:name>/")
def string_demo(name):
    # 访问页面的时候,数据类型会自动将参数转换成字符串
    return f'查询姓名:我叫{name}'


# 浮点数类型参数限制,浏览器地址输入浮点数时传递
@app.route("/index/<float:weight>/")
def float_demo(weight):
    # 访问页面的时候,数据类型会自动将参数转换成浮点数
    return f'查询体重:我{weight}千克'


# 路径类型参数限制(可以有多个"/"),浏览器地址输入整数时传递
@app.route("/index/<path:location>/")
def path_demo(location):
    # 访问页面的时候,数据类型会自动将参数转换成路径
    return f'查询地址:我来自{location}'


# uuid是一种号称在世界范围内唯一的编码
@app.route("/index/<uuid:id>/")
def uuid_demo(id):
    # 访问页面的时候,数据类型会自动将参数转换成uuid
    return f'查询唯一标识:我的唯一标识是{id}'

@app.route("/test/enumerate")
def enumerate():
    print("直接返回循环数据")
    for i in "abc":
        print(i)

    print("返回循环的数据和索引")
    for i in enumerate("abc"):
        print(i)

    print("去掉双引号数据和索引")
    for i, j in enumerate("abc"):
        print(i, j)

    print("索引值设定(从1开始)")
    for i, j in enumerate("abc", 1):
        print(i, j)
    return "enumerate返回值检测完毕~"

@app.route("/test/locals")
def hi():
    a = 1
    b = 2
    hi = 3
    print("hi--",locals())
    # 参数组解包,将当前函数所有的局部变量传入
    hello(**locals())

@app.route("/test/kwargs")
def hello(**kwargs):
    print("hello 函数")
    print("hello--",kwargs)

# 启动项目服务器--可以通过参数更改,通常网站的页面需要放到网站服务器上,用户无法双击打开
if __name__ == '__main__':
    app.run(
        # host:主机地址
        host="localhost",
        # port:访问端口
        port=80,
        # debug:调试模式,测试环境True,生产环境Fasle
        debug=True,
        # use_reloader:自动重启
        use_reloader=True
    )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask03_路由传参 的相关文章

  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • 在 Django 中定义视图和 url。为什么调用函数时不使用括号?

    我已经在经历 Python速成课程 目前正在进行 Django Web应用程序项目 学习日志 阶段 有些东西与我已经学到的相矛盾 views py file from django shortcuts import render def i
  • 打印 scrapy 请求的“响应”

    我正在尝试学习 scrapy 在遵循教程的同时 我正在尝试进行细微的调整 我想简单地从请求中获取响应内容 然后我会将响应传递到教程代码中 但我无法发出请求并获取响应内容 建议就好 from scrapy http import Respon
  • 在 Python 中使用 XPath 和 LXML

    我有一个 python 脚本 用于解析 XML 并将某些感兴趣的元素导出到 csv 文件中 我现在尝试更改脚本以允许根据条件过滤 XML 文件 等效的 XPath 查询将是 DC Events Confirmation contains T
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • Python3 查找 2 个列表中有多少个差异才能相等

    假设我们有 2 个列表 always具有相同的长度和always包含字符串 list1 sot sot ts gg gg gg list2 gg gg gg gg gg sot 我们需要找到 其中有多少项list2应该改变 以便它等于lis
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • Python While 循环,and (&) 运算符不起作用

    我正在努力寻找最大公因数 我写了一个糟糕的 运算密集型 算法 它将较低的值减一 使用 检查它是否均匀地划分了分子和分母 如果是 则退出程序 但是 我的 while 循环没有使用 and 运算符 因此一旦分子可整除 它就会停止 即使它不是正确
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • ValueError:无法插入 ID,已存在

    我有这个数据 ID TIME 1 2 1 4 1 2 2 3 我想按以下方式对数据进行分组ID并计算每组的平均时间和规模 ID MEAN TIME COUNT 1 2 67 3 2 3 00 1 如果我运行此代码 则会收到错误 ValueE
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • 使用 Doc2vec 后如何解释 Clusters 结果?

    我正在使用 doc2vec 将关注者的前 100 条推文转换为矢量表示形式 例如 v1 v100 之后 我使用向量表示来进行 K 均值聚类 model Doc2Vec documents t size 100 alpha 035 windo
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • Pandas 在特定列将数据帧拆分为两个数据帧

    I have pandas我组成的 DataFrameconcat 一行由 96 个值组成 我想将 DataFrame 从值 72 中分离出来 这样 一行的前 72 个值存储在 Dataframe1 中 接下来的 24 个值存储在 Data
  • 使用 Keras 和 fit_generator 绘制 TensorBoard 分布和直方图

    我正在使用 Keras 使用 fit generator 函数训练 CNN 这似乎是一个已知问题 https github com fchollet keras issues 3358TensorBoard 在此设置中不显示直方图和分布 有
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb

随机推荐

  • 如何自定义sort函数中的比较函数

    在做剑指offer时 有一道题 题目描述 输入一个正整数数组 把数组里所有数字拼接起来排成一个数 打印能拼接出的所有数字中最小的一个 例如输入数组 3 32 321 则打印出这三个数字能排成的最小数字为321323 思路 自定义比较器 若a
  • TensorFlow在MNIST中的应用-无监督学习-自编码器(autoencoder)和encoder

    参考 TensorFlow技术解析与实战 TensorFlow上实现AutoEncoder自编码器 前面讲到的都是有监督学习 他的重要特征是数据都是有标记的 无标记的数据应该用什么样的网络模型来学习呢 这里用一个叫做 自编码网络 的网络模型
  • 同步和异步的区别

    同步 进程之间的关系不是相互排斥临界资源的关系 而是相互依赖的关系 进一步的说明 就是前一个进程的输出作为后一个进程的输入 当第一个进程没有输出时第二个进程必须等待 具有同步关系的一组并发进程相互发送的信息称为消息或事件 其中并发又有伪并发
  • c语言如何判断数据是否符合正态分布_统计学-1:判断数据是否满足正态分布

    1 正态分布的定义 正态分布 The Normal Distribution 假设一随机变量X服从一个期望为 方差为 的正态分布 概率密度函数为 则可记为 import 1 正态分布为什么常见 真正原因是中心极限定理 Central Lim
  • Linux 的性能调优的思路

    Linux操作系统是一个开源产品 也是一个开源软件的实践和应用平台 在这个平台下有无数的开源软件支撑 我们常见的apache tomcat mysql等 开源软件的最大理念是自由 开放 那么Linux作为一个开源平台 最终要实现的是通过这些
  • offset client style 之间的区别

    offset 返回一个指向最近的 closest 指包含层级上的最近 包含该元素的定位元素 如果没有定位的元素 则 offsetParent 为最近的 table元素对象或根元素 标准模式下为 html quirks 模式下为 body 父
  • 【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 文献来源 文献分享阅读 我用夸克网盘分享了
  • mysql alter字段,mysql alter 语句用法,添加、修改、删除字段

    mysql alter 语句用法 添加 修改 删除字段 主键 alter table tabelname add new field id int 5 unsigned default 0 not null auto increment a
  • Spark报错解决:org.apache.spark.SparkException: Task failed while writing rows.at org.apache.spark.sql.ex

    文章目录 报错信息 解决方法 报错信息 报错信息很长 这里截取了最先的一个错误信息 发现是写入文件时出错 Caused by org apache spark SparkException Job aborted due to stage
  • 数仓 面试题(离线)实战解答

    无意间翻到以前的数仓面试题 今天把它整理出来 方便你我他 数仓分层 为什么要对数仓进行分层 1 说说对数据仓库的理解 数据仓库是面向主题进行组织的 数据是集成的 不可更新的 随时间变化的的 数据仓库经历了这样三个阶段 简单报表阶段 数据集市
  • Go语言中如何在range循环中修改数组/切片内容

    在go语言中 我们经常会使用到range来帮助我们遍历一些数据 通常情况下都是查看操作多一些 但是当我们需要对其原地址上的内容进行变更时 通常都是使用 for i 0 i
  • mac下统计代码行数方法

    使用cloc工具统计 1 首先在终端执行命令下载cloc brew install cloc 没有brew的先下载brew 这个后面写一个 这里先占位 2 cloc使用 进入想要查询的项目文件夹 然后执行下面的命令查询 cloc 如下图所示
  • 【深入理解C++】调用父类的拷贝构造函数

    文章目录 1 默认的拷贝操作 2 调用父类的拷贝构造函数 3 用子类对象初始化父类对象 1 默认的拷贝操作 默认情况下 继承体系下类对象的拷贝是每个成员变量逐个拷贝 include
  • 下采样方法

    AntiAliasInterpolation2d代码解读 注记 最近在看一些视频驱动的代码时 常见一种特殊的下采样方法 故在这里记录一下 Class AntiAliasInterpolation2d nn Module 初始化 def in
  • 两个有序序列的中位数 (25 分)

    已知有两个等长的非降序序列S1 S2 设计函数求S1与S2并集的中位数 有序序列A 0 A 1 A N 1 的中位数指A N 1 2 的值 即第 N 1 2 个数 A 0 为第1个数 输入格式 输入分三行 第一行给出序列的公共长度N 0
  • Hive 中常用的查询语句解读及应用(分组、Join、排序语句)

    文章目录 Hive 中常用的查询语句 2 分组 2 1 Group By 语句 2 2 Having 语句 3 Join 语句 3 1 等值 Join 3 2 表的别名 3 3 内连接 3 4 左外连接 3 5 右外连接 3 6 满外连接
  • mysql数据库使用between and 的不包含右边界问题

    最近在公司经常支持业务部门数据提取 遇到了一个提取时间间隔的问题 想到了between and比较方便 之前经常用这个关键字 但是从来没思考过它的边界问题 所以趁这次研究了一下 废话不多说 直接上例子 select from user se
  • 【机器学习】支持向量机SVM及实例应用

    机器学习 支持向量机 1 分类超平面与最大间隔 2 对偶问题与拉格朗日乘子法 3 核函数 4 软间隔与正则化 5 实例应用 python使用支持向量机SVM 准备 数据集 导入SVM模块 步骤 1 读取数据集 2 划分训练样本与测试样本 3
  • cool使用es教程

    cool使用es教程 安装es8 1 0 将elasticsearch head文件运行至浏览器插件可以看到运行情况 安装ik分词器 将目录名称改名放置es安装目录plug目录 版本一定cool5 安装es8 1 0 官网 github下载
  • Flask03_路由传参

    encoding utf 8 1 app route 路由匹配 代表资源在服务器上的位置 1 路由 Flask根据http请求的url在路由表中和定义好的进行匹配 找到对应的函数处理这个请求 此过程保存一个url到函数的映射关系称之为路由r