数据科学的概念数据科学的概念

注册路由

最基础的路由定义方法是:

Route::rule('路由表达式', '路由地址', '请求类型')

要使用Route类注册路由必须首先在路由定义文件开头添加引用(后面不再重复说明)use think\facade\Route;

例如注册如下路由规则(假设为单应用模式):// 注册路由到News控制器的read操作

Route::rule('new/:id','News/read');

我们访问:http://serverName/new/5

会自动路由到:http://serverName/news/read/id/5

并且原来的访问地址会自动失效。

可以在rule方法中指定请求类型(不指定的话默认为任何请求类型有效),例如:Route::rule('new/:id', 'News/update', 'POST');

请求类型参数不区分大小写。

表示定义的路由规则在POST请求下才有效。如果要定义GET和POST请求支持的路由规则,可以用:Route::rule('new/:id','News/read','GET|POST');

不过通常我们更推荐使用对应请求类型的快捷方法,包括:

类型描述快捷方法GETGET请求get

POSTPOST请求post

PUTPUT请求put

DELETEDELETE请求delete

PATCHPATCH请求patch

*任何请求类型any

快捷注册方法的用法为:

Route::快捷方法名('路由表达式', '路由地址')

使用示例如下:Route::get('new/','News/read'); // 定义GET请求路由规则

Route::post('new/','News/update'); // 定义POST请求路由规则

Route::put('new/:id','News/update'); // 定义PUT请求路由规则

Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则

Route::any('new/:id','News/read'); // 所有请求都支持的路由规则

注册多个路由规则后,系统会依次遍历注册过的满足请求类型的路由规则,一旦匹配到正确的路由规则后则开始执行最终的调度方法,后续规则就不再检测。

规则表达式

规则表达式通常包含静态规则和动态规则,以及两种规则的结合,例如下面都属于有效的规则表达式:Route::rule('/', 'index'); // 首页访问路由

Route::rule('my', 'Member/myinfo'); // 静态地址路由

Route::rule('blog/:id', 'Blog/read'); // 静态地址和动态地址结合

Route::rule('new/:year/:month/:day', 'News/read'); // 静态地址和动态地址结合

Route::rule(':user/:blog_id', 'Blog/read'); // 全动态地址

规则表达式的定义以/为参数分割符(无论你的PATH_INFO分隔符设置是什么,请确保在定义路由规则表达式的时候统一使用/进行URL参数分割,除非是使用组合变量的情况)。

每个参数中可以包括动态变量,例如:变量或者都表示动态变量(新版推荐使用第二种方式,更利于混合变量定义),并且会自动绑定到操作方法的对应参数。

你的URL访问PATH_INFO分隔符使用pathinfo_depr配置,但无论如何配置,都不影响路由的规则表达式的路由分隔符定义。

可选变量

支持对路由参数的可选定义,例如:Route::get('blog/:year/[:month]','Blog/archive');

// 或者

Route::get('blog//','Blog/archive');

变量用[ ]包含起来后就表示该变量是路由匹配的可选变量。

以上定义路由规则后,下面的URL访问地址都可以被正确的路由匹配:http://serverName/index.php/blog/2015

http://serverName/index.php/blog/2015/12

采用可选变量定义后,之前需要定义两个或者多个路由规则才能处理的情况可以合并为一个路由规则。

可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。

完全匹配

规则匹配检测的时候默认只是对URL从头开始匹配,只要URL地址开头包含了定义的路由规则就会匹配成功,如果希望URL进行完全匹配,可以在路由表达式最后使用$符号,例如:Route::get('new/:cate$', 'News/category');

这样定义后http://serverName/index.php/new/info

会匹配成功,而http://serverName/index.php/new/info/2

则不会匹配成功。

如果是采用Route::get('new/:cate', 'News/category');

方式定义的话,则两种方式的URL访问都可以匹配成功。

如果需要全局进行URL完全匹配,可以在路由配置文件中设置// 开启路由完全匹配

'route_complete_match'   => true,

额外参数

在路由跳转的时候支持额外传入参数对(额外参数指的是不在URL里面的参数,隐式传入需要的操作中,有时候能够起到一定的安全防护作用,后面我们会提到)。例如:Route::get('blog/:id','blog/read')

->append(['status' => 1, 'app_id' =>5]);

上面的路由规则定义中status和app_id参数都是URL里面不存在的,属于隐式传值,当然并不一定需要用到,只是在需要的时候可以使用。

如果append方法中的变量和路由规则存在冲突的话,append方法传入的优先。

路由标识

如果你需要快速的根据路由生成URL地址,可以在定义路由的时候指定生成标识(但要确保唯一)。

例如// 注册路由到News控制器的read操作

Route::rule('new/:id','News/read')

->name('new_read');

生成路由地址的时候就可以使用url('new_read', ['id' => 10]);

如果不定义路由标识的话,系统会默认使用路由地址作为路由标识,例如可以使用下面的方式生成url('News/read', ['id' => 10]);

强制路由在路由配置文件中设置'url_route_must'=>  true,

将开启强制使用路由,这种方式下面必须严格给每一个访问地址定义路由规则(包括首页),否则将抛出异常。

首页的路由规则采用/定义即可,例如下面把网站首页路由输出Hello,world!Route::get('/', function () {

return 'Hello,world!';

})

任务

?不会了怎么办

python数据科学讲解_数据科学的概念-Python数据科学技术详解与商业项目实战精讲 - Python学习网...相关推荐

  1. python 股票 因子分析_因子分析1.-Python数据科学技术详解与商业项目实战精讲 - Python学习网...

    因子分析1.因子分析1. 获取单个数据 获取单个数据的方法包括:// 取出主键为1的数据 $user = User::find(1); echo $user->name; // 使用查询构造器查 ...

  2. python 欠采样_欠采样-Python数据科学技术详解与商业项目实战精讲 - python自学网...

    欠采样欠采样 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 query方法用于执行SQL查询操作,和select方法一样返回查询结果数据集(数组). 使用示例:Db::quer ...

  3. python主成分分析实验报告_主成分分析案例1-Python数据科学技术详解与商业项目实战精讲 - Python学习网...

    主成分分析案例1主成分分析案例1 查找并更新 在取出数据后,更改字段内容后使用save方法更新数据.这种方式是最佳的更新方式.$user = User::find(1); $user->name ...

  4. 用python客户画像代码_客户画像与标签体系-Python数据科学技术详解与商业项目实战精讲 - Python学习网...

    客户画像与标签体系客户画像与标签体系 视图驱动 默认的视图仅支持PHP原生模板,如果你需要扩展支持其它的模板引擎,可以实现一个ThinkPHP视图的模板引擎驱动,该驱动必须实现think\contra ...

  5. Python机器学习全流程项目实战精讲(2018版)

    Python机器学习全流程项目实战精讲(2018版) 网盘地址:https://pan.baidu.com/s/16SSVq74YC07M0dW1iDekPg 提取码: vu7r 备用地址(腾讯微云) ...

  6. python数据挖掘商业案例_Python数据科学-技术详解与商业实践-第八讲作业

    作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...

  7. python数据集的预处理_关于Pytorch的MNIST数据集的预处理详解

    关于Pytorch的MNIST数据集的预处理详解 MNIST的准确率达到99.7% 用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,例如数据增强,丢失,伪随机化等. 操作系统:ubuntu ...

  8. python平稳性检验_时间序列中单位根平稳性检验adfuller详解 (ADF Test in Python)

    在 statsmodels.tsa.stattools.adfuller statsmodels.tsa.stattools.adfuller(x,maxlag = None,regression = ...

  9. python求解三元一次方程_北师大版八上数学5.2 求解二元一次方程组 知识点微课精讲...

    知识点总结 代入消元法 代入消元法的实质是将二元一次方程组中的某一个方程进行未知数的分离,即将该方程进行变换,完整分离出一个独立的未知数,而这个未知数将用含有另一个未知数的式子来表示.设某二元一次方程 ...

最新文章

  1. 技术01期:大规模图计算【基础篇】
  2. Git 取消上一次commit操作,但保留add操作
  3. r - 求平均成绩_2019深圳市公务员考试笔试成绩公布!
  4. 使 IDEA 的 termina l可以使用 Linux 下的终端命令
  5. Java学习day2
  6. UMEditor调整文本编辑器的组件位置的方法
  7. save()php,PHP DOMDocument save()用法及代码示例
  8. 「管理数学基础」3.3 凸分析:凸函数的极值和凸规划
  9. MyBatis 动态 SQL(认真看看, 以后写 SQL 就爽多了)
  10. OFFICE技术讲座:一级标点压缩共有几种情形
  11. html 如何写退出程序,vb点击关闭窗口 单击退出程序的VB代码怎么写
  12. C# 后端代码中使用事务
  13. 第1章 Pandas基础
  14. 突发!图森未来CEO侯晓迪被罢免,公司疑遭SEC、FBI联手调查,市值一夜砍半
  15. 通过PS的图层样式制作透明的玻璃字
  16. 使用功能点估算模型评估软件测试的工作量
  17. 用SNMP协议实现系统监控
  18. 【HTML】iframe标签
  19. 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
  20. 如何区分电梯卡为id卡ic卡_如何分辨门禁系统中IC卡和ID卡的不同

热门文章

  1. 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜
  2. adb实时获取屏幕_实时数仓 | 你需要的是一款合适且强大的OLAP数据库(上)
  3. 储存外部资源的Android项目子目录,Android资源使用
  4. java quartz timer_Java定时器Quartz和Timer
  5. pip配置永久国内源
  6. 【Linux常用命令】grep命令
  7. TypeScript 3.3来了!快看看有什么新功能
  8. 2002: [Hnoi2010]Bounce 弹飞绵羊
  9. 201671010135 2016--2017java程序设计对java的初步认识和对第一,二章的总结(0)
  10. 第三章 可扩展标记语言XML