自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 LeetCode刷题复习目录

也可作为刷题顺序复习动态规划篇案例:【LeetCode NO.70】爬楼梯扩展:矩阵图类的动态规划:【LeetCode NO.62】不同路径【LeetCode NO.62】不同路径Ⅱ其他:【LeetCode NO.120】三角形最小路径和...

2020-08-31 17:56:44 93

原创 Solved Issues

001-Issue:ModuleNotFoundError: No module named 'IPython.core.inputtransformer2'conda install IPython==7.3python -m ipykernel install --user --name env--display-name 'dis_name'

2019-06-01 17:06:43 456 1

原创 【ThinkPHP6.x/微实战】(6)搜索器结合分页

搜索器的作用是用于封装字段(或者搜索标识)的查询条件表达式,一个搜索器对应一个特殊的方法(该方法必须是public类型),方法命名规范为:searchFieldNameAttrFieldName为数据表字段的驼峰转换,搜索器仅在调用withSearch方法的时候触发。搜索器的场景包括:1.限制和规范表单的搜索条件;2.预定义查询条件简化查询; 举个例子,在如下的页面中,如果搜索字段全部为...

2021-08-02 21:43:22 155

原创 【ThinkPHP6.x/微实战】(5)搜索表单 UI设计

这部分涉及到一些前端代码如下:<!--搜索和表单--><form action="{:url('/user') }" class="pb-3"> <div class="form-row"> <div class="col-form-label"> <label for="username">用户名:</label> </div> &lt...

2021-08-02 21:22:27 58

原创 菜鸟的最后一篇go教程

为什么要起这个名字?其实其中回答了何种人适合看这篇文章——有其他语言基础刚入web后端的初学者。本文主要是对黑马程序员的go基础教程部分做了精简,有基础的能节省不少时间。姊妹篇:菜鸟的最后一篇php教程。...

2021-08-02 09:23:30 236

原创 【ThinkPHP6.x/微实战】(4)自定义分页类

*这里为了开发方便,先设置自动跳转到user模块中:return redirect(url('/user')); 设置路由后的user页面访问路径为:http://localhost/tp6demo/public/index.php/user 进行重定向之后,访问user页面的路径就直接变成了:http://localhost/tp6demo/public/index.php分页设计先了解下Bootstr...

2021-07-31 19:30:39 256

原创 【ThinkPHP6.x/微实战】(3)用户表及模块创建

在本次实战中,需要建立如下的数据库,数据库名为student,下表为tp_user: 下面需要注意:1)username和email设置为唯一索引,防止重复;2)配置表前缀tp_,位置为config/database.php。模块搭建 可以使用命令快捷新建资源控制器:User.php:php think make:controller User 在controller下会生成该类,并自动构建一些方法:...

2021-07-31 19:04:59 227

原创 【ThinkPHP6.x/微实战】(2)配置环境引入UI

这一篇主要来介绍在tp6环境中引入Bootstrap。在使用tp6框架开发时,一般会做如下的准备工作,这里稍微做一下整理:使用composer命令在指定的目录安装Thinkphp6.x; 修改.env文件,主要是注意配置数据库账号密码、开启调试; 使用命令或直接开启Nginx服务打开首页。引入UI直接将Bootstrap包含js和css文件夹拷贝项目中public/static里,在引用时使用相对路径即可,下面会有实例说明。接着配置config/view.php...

2021-07-31 17:43:04 127

原创 【ThinkPHP6.x/微实战】(1)简介

本课程主要是摘录至这位老师的课程并做了一些精简,没有条件看视频的同学的可以使用该系列文字教程,B站链接:李炎恢 其他的课程我一般不会写简介,但是作为这个课程的简介是很有必要的,因为其中包含了如何真正掌握一门框架的方法。这种微实战,主要的特性如下:尽可能独立模块 不引入其它技术 不考虑各种规范、思想等这种方式对于新接触框架的同学来说,学习路线会更加平滑。因为在实际的项目中,光UI和JS前端这两项,就可能占用项目60~70%的代码量,可是庞大前端代码会...

2021-07-30 20:22:44 60

原创 使用vagrant配置开发环境

今天照着公司教程使用vagrant配置好了开发环境。之前使用Ubuntu子系统配置好了一个,鉴于子系统并不是虚拟化的,所以踩了很多坑...然后抱着学习的心态又将开发环境装了一遍,发现非常丝滑,特此记录一下。Vagrant简介 首先需要了解一下vagrant,简单来说,vagrant是一个操作虚拟机的工具,基于自身的约定,就能很快的完成一套开发环境的部署,并可以打包传播,极大的方便了在工作环境中,各个开发环境不一致的问题,也解决了重复配置环境的浪费。与虚拟化软件的关系...

2021-07-29 19:55:47 131

原创 【ThinkPHP6.x框架】(26)服务系统、事件、多应用

服务系统服务系统,可以将一个类的对象注册到容器中去,方便调用执行。服务的执行优先级较高,在执行主体程序前就已经完成依赖注入。它的作用可以做一些初始化,配置一些参数,扩展插件等等均可。验证码扩展类就使用了服务系统,我们自己创建一个简单的服务:在common目录下创建一个Shut.php类,这个类是被服务的类。//定义一个属性字段protected static $name = 'Mr.Lee'; //设置public static function setName($name...

2021-07-28 14:41:53 142

原创 【ThinkPHP6.x框架】(25)中间件

定义中间件中间件的主要用于拦截和过滤 HTTP请求,并进行相应处理,这些请求的功能可以是 URL重定向、权限验证等等。为了进一步了解中间件的用法,我们首先定义一个基础的中间件,可以通过命令行模式,在应用目录下生成一个中间件文件和文件夹:php think make:middleware Checknamespace app\middleware; class Check{ public function handle($request, \Closure $ne...

2021-07-28 14:15:28 174

原创 【ThinkPHP6.x框架】(24)异常与日志处理

异常处理系统输出的异常信息比 PHP原生的要人性化的多,但需要开启调试模式。如果你想更改异常页面的样式、布局之类的,可以修改这个页面:vendor/topthink/framework/src/tpl/think_exception.tpl如果你想要直接替换掉异常页面,换成别的,可以在 app.php中进行设置:// 异常页面的模板文件'exception_tmpl' => app()->getThinkPath() . 'tpl/...

2021-07-28 12:00:47 499

原创 【ThinkPHP6.x框架】(23)tp框架的附加功能

上传如果要实现上传功能,首先需要建立一个上传表单,具体如下:<form action="http://localhost/tp6/public/upload" enctype="multipart/form-data" method="post"><input type="file" name="image"> <input type="submit" value="确定"></form>...

2021-07-28 11:34:25 172

原创 【ThinkPHP6.x框架】(22)Session、Cookie、缓存

SessionSession在使用Session之前,需要开启初始化,在中间件文件middleware.php:// Session初始化\think\middleware\SessionInit::classTP6.0不支持原生$_SESSION的获取方式,也不支持 session_开头的函数,直接使用::set()和::get()方法去设置 Session的存取:Session::set('user', 'Mr.Lee'); //设置...

2021-07-28 10:14:42 720

原创 【ThinkPHP6.x框架】(21)模板

模版引擎驱动和赋值变量引擎驱动 MVC中,M(模型)和 C(控制器)是前面我们所了解的内容,而V(视图)就是页面。TP6.0默认不自带TT模版引擎,它作为一个可选的扩展给开发人员安装。也就是说,并不一定非要使用模板引擎的语法规则来开发V(视图)部分。如果不用模版引擎,可以在控制器通过require()方法引入PHP文件混编即可;如果要使用模版引擎,先创建一个用于测试模板引擎的控制器:Show.php,写入模版引擎的调用语法,来判断,是否已经安装了模板引擎扩展:r...

2021-07-27 14:28:01 398

原创 【ThinkPHP6.x框架】(20)验证器

验证器定义

2021-07-26 20:34:12 310 4

原创 tp6实战经验(持续更新)

Session在框架中开启Session,需要在config\middleware.php中输入如下初始化代码:\think\middleware\SessionInit::class 在控制器中,需要引入如下:use think\facade\Session验证码功能 tp中的验证码需要安装,命令如下:composer require topthink/think-captcha在控制器中引入:...

2021-07-26 14:59:43 424

原创 菜鸟的最后一篇php教程

为什么要起这个名字?其实其中回答了何种人适合看这篇文章——有其他语言基础刚入web后端的初学者。本文主要是对菜鸟教程中的PHP部分做了精简,有基础的能节省不少时间。PHP变量的作用域local global:在函数内调用函数外的全局变量时会用到,存储在一个名为 $GLOBALS[index] 的数组中。 static:希望某个局部变量不要被删除时用到,该变量仍然是函数的局部变量 parameterecho 和 print php原生只有这两种输出模式,它...

2021-07-24 17:40:23 361 2

原创 【ThinkPHP6.x框架】(19)请求

请求对象使用构造方法注入请求,如下:namespace app\controller; use think\Request;class Rely { protected $request; public function __construct(Request $request) { $this->request = $request; } public function index() { retur...

2021-07-22 11:49:50 291

原创 【ThinkPHP6.x框架】(18)Facade

创建静态调用Facade,即门面设计模式,为容器的类提供了一种静态的调用方式。在之前的很多例子中,我们大量的引入 Facade类库,并且通过静态调用,比如请求 Request::?,路由 Route::?,数据库 Db::?等等,均来自 Facade。下面我们手工来创建一个自己的静态调用类库,来了解一下流程;首先,在应用目录下创建 common公共类库文件夹,并创建 Test.php:namespace app\common;class Test { pub...

2021-07-22 09:39:49 134

原创 【ThinkPHP6.x框架】(17)资源路由、注解路由和URL生成

资源路由系统提供了一个命令,方便开发者快速生成一个资源控制器,其中自带了很多CRUD的方法:php think make:controller Blog 生成的方法,参数默认值为id可以修改:->vars(['blog'=>'blog_id']); //相应的 delete($blog_id)资源路由,采用固定的常用方法来实现简化 URL的功能:Route::resource('ads', 'Address');...

2021-07-21 21:34:17 559 6

原创 【ThinkPHP6.x框架】(16)路由的基础

简介路由的作用就是让 URL地址更加的规范和优雅,或者说更加简洁。设置路由对 URL的检测、验证等一系列操作提供了极大的便利性。路由的配置文件在config/route.php中,定义文件在 route/app.php。route目录下的定义文件的文件名随机,都有效,或多个均有效果。路由是默认开启的,如果想要关闭路由,在 config/app.php配置:// 是否启用路由'with_route' => false, 前期准备:创建一个 Addr...

2021-07-21 16:28:52 148

原创 【ThinkPHP6.x框架】(15)关联预载入、统计与输出

关联预载入在普通的关联查询下,我们循环数据列表会执行 n+1次 SQL查询;$list = UserModel::select([19, 20, 21]); foreach ($list as $user) { dump($user->profile);}上面继续采用一对一的构建方式,打开 trace调试工具,会得到四次查询;如果采用关联预载入的方式,将会减少到两次,也就是起步一次,循环一次;$list = User...

2021-07-21 13:48:09 300

原创 【ThinkPHP6.x框架】(14)数据库的关联模型

对于关联方式,系统提供了9种方案,具体如下:上面的例子,我们采用了一对一的关联模型,它还有相对的反向关联; 下面给出一个例子:class Profile extends Model { public function user() { return $this->belongsTo(User::class); }}$profile = ProfileModel::find(1); return $profile-&...

2021-07-21 11:32:38 249

原创 【ThinkPHP6.x框架】(13)模型5(JSON、软删除、事件)

数据库JSON数据库写入 JSON字段,直接通过数组的方式即可完成:$data = [ 'username' => '辉夜', 'password' => '123', 'gender' => '女', 'email' => 'huiye@163.com', 'price' => 90, 'details' => '123', 'uid' => 1...

2021-07-21 10:47:24 152

原创 【ThinkPHP6.x框架】(12)模型4(自动时间戳、只读字段、数据类型)

自动时间戳和只读字段只支持模型方式,不支持数据库方式。模型自动时间戳 开启设置。全局开启:在database.php中,设置为true;// 自动写入时间戳字段'auto_timestamp' => true,如果你只想设置某一个模型开启,需要设置特有字段://开启自动时间戳protected $autoWriteTimestamp = true;自动时间戳开启后,会自动写入 create_time和 u...

2021-07-21 09:57:10 367

原创 【ThinkPHP6.x框架】(11)模型3(查询范围、搜索器、数据集)

查询范围在模型端创建一个封装的查询或写入方法,方便控制器端等调用。比如,封装一个筛选所有性别为男的查询,并且只显示部分字段5条。方法名规范:前缀scope,后缀随意,调用时直接把后缀作为参数使用:public function scopeMale($query){ $query->where('gender', '男') ->field('id,username,gender,email') ->limit(5)...

2021-07-20 21:55:12 306 2

原创 【ThinkPHP6.x框架】(10)模型2(获取器和修改器)

模型获取器获取器的作用是对模型实例的数据做出自动处理。一个获取器对应模型的一个特殊方法,该方法为 public。方法名的命名规范为:getFieldAttr()。举个例子,数据库表示状态status字段采用的是数值;而页面上,我们需要输出status字段希望是中文,就可以使用获取器;在 User模型端,我创建一个对外的方法,如下:public function getStatusAttr($value){ $status = [-1=>'删除', 0=>'禁...

2021-07-20 20:06:15 186

原创 【ThinkPHP6.x框架】(9)模型1(定义以及CRUD)

定义定义一个和数据库表相匹配的模型;<?phpnamespace app\model;use think\Model;class User extends Model{}模型会自动对应数据表,并且有一套自己的命名规则;模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写,对应规则如下:tp_user(表名) => Usertp_user_type(表名) => UserType创...

2021-07-20 17:33:56 228 3

原创 【ThinkPHP6.x框架】(8)数据库进阶4(事务与结果集处理)

事务处理1. 数据库的表引擎需要是 InnoDB才可以使用,如果不是调整即可;2. 事务处理,需要执行多个 SQL查询,数据是关联恒定的;3. 如果成功一条查询,改变了数据,而后一条失败,则前面的数据回滚;4. 比如:蜡笔小新给路飞 3快钱,自己-3,对方+3,这时需要事务处理;5. 系统提供了两种事务处理的方式,第一种是自动处理,出错自动回滚;Db::transaction(function () {...

2021-07-20 14:55:54 260 2

原创 【ThinkPHP6.x框架】(7)数据库进阶3(高级查询与便捷查询)

高级查询使用|(OR)或&(AND)来实现 where条件的高级查询,where支持多个连缀;$user = Db::name('user') ->where('username|email', 'like', '%xiao%') ->where('price&uid', '>', 0) ->select(); 对应的sql语句如下:SELECT * FROM...

2021-07-20 14:08:45 130

原创 【前端】AJAX详解

简介 之前在项目中用到AJAX,是前端的技术,但是感觉作为后端开发者,对它的掌握还是很有必要的。AJAX全称为Asynchronous JavaScript And XML,就是异步的JS和XML。特点是可以在浏览器中向服务器发送异步请求,最大的优势就是无刷新获取数据。XML简介 XML是可扩展标记语言。XML中没有预定义标签,全都是自定义标签,用来表示一些数据。现在已被JSON取代。使用核心对象XMLHttpReq...

2021-07-20 10:59:37 6045

原创 从一个例子理解ThinkPHP6中的自定义验证器

首先有这样的需求:有这样的一个字段(contact),这个字段必须有值,并且邮箱和手机号码均可,那么这里肯定是需要自定义验证规则,我的自定义规则如下:<?phpnamespace app\validate;use think\Validate;class Message extends Validate{ protected $rule = [ 'username' => 'require|max:25', 'contact...

2021-07-14 10:17:23 452

原创 【ThinkPHP6.x框架】(6)数据库进阶2(链式查询详解)

where1. 表达式查询,就是 where()方法的基础查询方式;Db::name('user')->where('id', '>', 70)->select();2. 可以通过关联数组和索引数组作为参数来进行查询;$data = ['gender' => '男', 'price' => 100];$data = ['gender', '=', '男', 'price', '=', 100];$user .

2021-07-12 11:15:21 302

原创 【ThinkPHP6.x框架】(5)数据库进阶1(高级查询)

时间查询传统方式可以使用>、<、>=、<=来筛选匹配时间的数据;Db::name('user')->where('create_time', '>', '2018-1-1')->select();可以使用 between关键字来设置时间的区间;Db::name('user')->where('create_time', 'between', ['2018-1-1', ...

2021-07-12 10:27:12 272 1

原创 【ThinkPHP6.x框架】(4)数据库的增删改查

数据的查询 在thinkPHP中数据的查询主要有以下三种方法:单数据查询 先给出一个实际的例子。$data = Db::table('user')->where('age', 28)->find();Db::table('user')->where('age', 28)->find();$data = Db::getLastSql();$data = Db::table('user')->where('age', 1)-&g...

2021-07-10 19:54:40 562

原创 【ThinkPHP6.x框架】(3)控制器与数据库

控制器简介 控制器都存放在app/controller下,当然也可以通过config/route.php中的'controller_layer'来进行修改。一般来说,创建控制器后,推荐继承基础控制器来获得更多的方法(extends BaseController),基础控制器仅仅提供了控制器验证功能,并注入了 think\App和 think\Request。这两个的大致使用方法如下:<?phpnamespace app\controller;use app\BaseC...

2021-07-10 11:14:36 251

原创 【ThinkPHP6.x框架】(2)相关配置与访问

相关配置开启调试 在根目录的.env文件中有关于框架的相关配置,下面以开启调试模式举例。APP_DEBUG = true; 开启调试模式后的优势:a. 记录系统运行流程的执行过程;b. 展示错误和调试信息,并开启日志记录;c. 模版修改可以及时生效(不会被缓存干扰);d. 启动右下角的 Trace调试功能,更加强大;...

2021-07-08 16:42:54 184 2

原创 【置顶】后端疑难杂症

Directive 'track_errors' is deprecated in Unknown on line 0【Composer】

2021-07-07 21:13:25 52 1

从目标检测到人脸识别.7z

领域中的state of art级别论文,值得认真学习 其中包含RCNN系列,YOLO系列,FaceNet等。

2019-06-01

Netron-Step-3.0.3

各种模型的网络可视化神器,github下载站点慢的可以从这里下载 介绍链接:https://blog.csdn.net/leviopku/article/details/81980249

2019-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除