Web应用-Thinkphp框架-开发指南

Thinkphp框架

  • 二级导航分类,模板继承,内置标签
  • Public 修改
  • MVC模块化 ——访问机制
  • 传参
  • 加载模版
  • 模版引入 分离
  • Runtime 缓存文件
      • 管理员添加
      • 数据验证及验证场景 控制器 validate
  • 在sql执行(敏感操作)之前验证
  • 数据模板 分页
  • 数据表连接查询
  • TP 关联查询
    • -----------------
  • 由于是3.2 版本的教程 后面会结合5.0版本进行改进 - 主要记录思路
  • 无限分类模块实现
  • 商品模块 设计
  • Session
  • 控制器初始化
  • 模板布局
  • 模板赋值
  • 请求与响应
      • 响应
  • url及路由
    • url和路由

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

二级导航分类,模板继承,内置标签

模板继承

在这里插入图片描述

 {block name="title"}<title>网站标题</title>{/block}

在这里插入图片描述

 {block name="title"}<title>{$web_title}</title>{/block}

在这里插入图片描述

{block name="include"}{include file="Public:header" /}{/block}

在这里插入图片描述

 <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>{block name="title"}标题{/block}</title> </head> <body> {block name="menu"}菜单{/block}{block name="left"}左边分栏{/block} {block name="main"}主内容{/block} {block name="right"}右边分栏{/block}{block name="footer"}底部{/block} </body> 
</html>

在这里插入图片描述

 {extend name="base" /} {block name="title"}{$title}{/block}
{block name="menu"}<a href="/" >首页</a><a href="/info/" >资讯</a> <a href="/bbs/" >论坛</a> 
{/block} 
{block name="left"}
{/block} {block name="main"} 
{volist name="list" id="vo"}<a href="/new/{$vo.id}">{$vo.title}</a><br/> {$vo.content}{/volist} {/block} {block name="right"}最新资讯: {volist name="news" id="new"}<a href="/new/{$new.id}">{$new.title}</a><br/> {/volist}{/block} {block name="footer"} {__block__} @ThinkPHP 版权所有 {/block}

在这里插入图片描述

 {block name="footer"} {__block__}@ThinkPHP 版权所有 {/block}

在这里插入图片描述

 {extend name="Public:base" /}

在这里插入图片描述

 {extend name="./Template/Public/base.html" /}

在这里插入图片描述

 {block name="title"}<title>{$title}</title>{/block} <a href="/" >首页</a><a href="/info/" >资讯</a> <a href="/bbs/" >论坛</a>

在这里插入图片描述




内置标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
循环输出标签
在这里插入图片描述

 $list = User::all(); $this->assign('list',$list);

在这里插入图片描述

 {volist name="list" id="vo"}{$vo.id}:{$vo.name}<br/>{/volist}

在这里插入图片描述

 {volist name="list" id="data"} {$data.id}:{$data.name}<br/> {/volist}

在这里插入图片描述

 {volist name="list" id="vo" offset="5" length='10'} {$vo.name}{/volist}

在这里插入图片描述

 {volist name="list" id="vo" mod="2" } {eq name="mod" value="1"}{$vo.name}{/eq} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" mod="5" }{$vo.name} {eq name="mod" value="4"}<br/>{/eq}{/volist}

在这里插入图片描述

 {volist name="list" id="vo" empty="暂时没有数据" } {$vo.id}|{$vo.name} {/volist}

在这里插入图片描述

 $this->assign('empty','<span class="empty">没有数据</span>'); $this->assign('list',$list);

在这里插入图片描述

 {volist name="list" id="vo" empty="$empty" } {$vo.id}|{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" key="k" } {$k}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" } {$i}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" }{$key}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name=":fun('arg')" id="vo"} 
{$vo.name} 
{/volist}



FOREACH标签

在这里插入图片描述

 {foreach $list as $vo} {$vo.id}:{$vo.name} {/foreach}

在这里插入图片描述

 {foreach name="list" item="vo"}{$vo.id}:{$vo.name}{/foreach}

在这里插入图片描述

 {foreach name="list" item="vo" } {$key}|{$vo} {/foreach}

在这里插入图片描述

 {foreach name="list" item="vo" key="k" } {$k}|{$vo} {/foreach}

FOR标签

 {for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" } {/for}

在这里插入图片描述

 {for start="1" end="100"} {$i} {/for}
 for ($i=1;$i<100;$i+=1){echo $i; }

比较标签
在这里插入图片描述

 {比较标签 name="变量" value="值"}内容{/比较标签}

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

 {eq name="name" value="value"}value{/eq}
{equal name="name" value="value"}
value
{/equal}

在这里插入图片描述

 {eq name="name" value="value"} 相等{else/}不相等{/eq}

在这里插入图片描述

 {gt name="name" value="5"}value{/gt}

在这里插入图片描述

 {egt name="name" value="5"}value{/egt}

在这里插入图片描述

 {eq name="vo.name" value="5"}{$vo.name}{/eq}

在这里插入图片描述

 {eq name="vo:name" value="5"} {$vo.name} {/eq}

在这里插入图片描述

 {eq name="vo['name']" value="5"} {$vo.name}{/eq}

在这里插入图片描述

{eq name="vo:name|strlen" value="5"}{$vo.name}{/eq}

在这里插入图片描述

 {eq name="Think.get.name" value="value"}相等{else/}不相等{/eq}

在这里插入图片描述

 {eq name="vo:name" value="$a"}{$vo.name}{/eq}

在这里插入图片描述

 {compare name="name" value="5" type="eq"}value{/compare}

在这里插入图片描述

 {eq name="name" value="5" }value{/eq}

在这里插入图片描述


条件判断

SWITCH标签

 {switch name="变量" }{case value="值1" break="0或1"}输出内容1{/case} {case value="值2"}输出内容2{/case} {default /}默认情况{/switch}

在这里插入图片描述

 {switch name="User.level"} {case value="1"}value1{/case} {case value="2"}value2{/case} {default /}default {/switch}

在这里插入图片描述

 {switch name="Think.get.userId|abs"} {case value="1"}admin{/case} {default /}default {/switch}

在这里插入图片描述

 {switch name="Think.get.type"}{case value="gif|png|jpg"}图像格式{/case} {default /}其他格式 {/switch}

在这里插入图片描述

 {switch name="Think.get.userId|abs"} {case value="1" break="0"}admin{/case}{case value="2"}admin{/case}{default /}default{/switch}

在这里插入图片描述

 {switch name="User.userId"} {case value="$adminId"}admin{/case} {case value="$memberId"}member{/case}{default /}default {/switch}

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

 {switch $User.userId}{case $adminId}admin{/case}{case $memberId}member{/case} {/switch}



IF标签

 {if condition="($name == 1) OR ($name > 100) "} value1 {elseif condition="$name eq 2"/}value2 {else /} value3{/if}

在这里插入图片描述

 {if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP {else /}other Framework {/if}

在这里插入图片描述

 {if condition="$user.name neq 'ThinkPHP'"}ThinkPHP {else /} other Framework{/if}

在这里插入图片描述

{if condition="$user:name neq 'ThinkPHP'"}
ThinkPHP
{else /} 
other Framework{/if}

在这里插入图片描述

 {if condition="表达式"} {if (表达式)} {if 表达式}

在这里插入图片描述
IN和NOTIN

在这里插入图片描述

 $id = 1; $this->assign('id',$id);

在这里插入图片描述

 {in name="id" value="1,2,3"} id在范围内 {/in}

在这里插入图片描述

 {notin name="id" value="1,2,3"}id不在范围内 {/notin}

在这里插入图片描述

 {in name="id" value="1,2,3"} id在范围内 {else/} id不在范围内 {/in}

在这里插入图片描述

 {in name="Think.get.id" value="1,2,3"} $_GET['id'] 在范围内{/in}

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

 {in name="id" value="$range"}id在范围内 {/in}

在这里插入图片描述

 {in name="id" value="$Think.post.ids"} id在范围内 {/in}

BETWEEN 和 NOTBETWEEN
在这里插入图片描述

 {between name="id" value="1,10"} 输出内容1{/between}

在这里插入图片描述

 {notbetween name="id" value="1,10"}输出内容2{/notbetween}

在这里插入图片描述

 {between name="id" value="1,10"} 输出内容1 {else/} 输出内容2{/between}

在这里插入图片描述

 {between name="id" value="1,3,10"} 输出内容1 {/between}

在这里插入图片描述

 {between name="id" value="A,Z"} 输出内容1 {/between}

在这里插入图片描述

 {between name="Think.post.id" value="1,5"} 输出内容1{/between}

在这里插入图片描述

 {between name="id" value="$range"}输出内容1 {/between}

在这里插入图片描述

 {between name="id" value="$Think.get.range"} 输出内容1{/between}

RANGE

在这里插入图片描述

 {range name="id" value="1,2,3" type="in"} 输出内容1 {/range}

在这里插入图片描述
PRESENT NOTPRESENT标签
在这里插入图片描述

 {present name="name"} name已经赋值 {/present}

在这里插入图片描述

 {notpresent name="name"} name还没有赋值 {/notpresent}

在这里插入图片描述

 {present name="name"}name已经赋值 {else /} name还没有赋值{/present}

在这里插入图片描述

 {present name="Think.get.name"}$_GET['name']已经赋值 {/present}

EMPTY NOTEMPTY 标签

在这里插入图片描述

 {empty name="name"} name为空值 {/empty}

在这里插入图片描述

 {notempty name="name"} name不为空 {/notempty}

在这里插入图片描述

 {empty name="name"} name为空{else /}name不为空 {/empty}

在这里插入图片描述

{empty name="Think.get.name"} $_GET['name']为空值 {/empty}

DEFINED 标签

在这里插入图片描述

 {defined name="NAME"} NAME常量已经定义 {/defined}

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

 {notdefined name="NAME"} NAME常量未定义 {/notdefined}

在这里插入图片描述

 {defined name="NAME"} NAME常量已经定义 {else /} NAME常量未定义{/defined}

在这里插入图片描述


Public 修改

  • 入口文件位置

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

  • tp3---->tp5根路径
  • tp5 —>public文件夹内在这里插入图片描述
  • 入口重定向
    域名 重定向
    更改网站目录到public—>访问index
    hosts配置

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

MVC模块化 ——访问机制

application 应用模块 eg: index admin

模块里面 controller 控制器
在这里插入图片描述

  • 访问非索引方法 ——自己写模块
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

传参

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

加载模版

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

  • 没有 找到 方法fetch
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 引入空间/引入空间类元素

在这里插入图片描述

  • 继承(类用类方法)用限定方法引入类也可以
  • 使用引入空间 再继承相关类也可以
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 限定模版名称
    在这里插入图片描述
    在这里插入图片描述

模版引入 分离

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

  • 复制模版进入

  • 输出替换 --配置模版路径 tp3–>;在这里插入图片描述在这里插入图片描述

  • 总config 和 分config之分
    在这里插入图片描述

  • 模版替换
    在这里插入图片描述在这里插入图片描述

  • 拼装路径

在这里插入图片描述

  • 静态文件 css images js
     在这里插入图片描述在这里插入图片描述

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

  • 模版分离(公共文件)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Runtime 缓存文件

管理员添加

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

  • 提交到 本文件下 即:list
    在这里插入图片描述
  • 打印测试 与tp3.2 不同

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
静态方法 —insert插入传出值

在这里插入图片描述

  • 引入类
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 添加一条数据
    在这里插入图片描述在这里插入图片描述
  • 批量添加 返回成功数据量

数据验证及验证场景 控制器 validate

在这里插入图片描述

  • 后端验证 3.2字段验证 5.0以后变化很大

  • validate创建验证文件
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 控制器 validate
    实例化 验证类
    数组 验证字段/规则
    传入验证字段
    执行 验证策略
    Dump 执行结果

在sql执行(敏感操作)之前验证

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

  • 也可以引入 继承

在这里插入图片描述

  • 打印调试验证规则
  • 创建 拦截器文件

在这里插入图片描述

  • 注意TP的namespace的根命名空间

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

  • 一个元素就是一个验证场景
    在这里插入图片描述
    在这里插入图片描述

数据模板 分页

  • 获取数据
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 创建model
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 分配到模板当中 名字/值

  • 循环输出 分配过来的数组数据
    在这里插入图片描述在这里插入图片描述

  • 空间类元素引入

  • 完全限定名称
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 分页
    在这里插入图片描述在这里插入图片描述

  • 排序 默认升序

在这里插入图片描述


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

  • 查询数据 一维二维数组的区别
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 调试查询功能结果
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 修改数据 需要主键——判断哪一条数据

  • 隐藏域 数据表主键
    在这里插入图片描述在这里插入图片描述

  • dump 一下 调试
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 数组传值
    在这里插入图片描述

  • 密码为空 不修改
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 验证 拦截器功能
    在这里插入图片描述

在这里插入图片描述


  • 数组传值
    在这里插入图片描述
  • 看一下传值
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 查看是否解析 (还是用数组写法)
  • 初始化管理员 不可动摇
    在这里插入图片描述
  • 助手函数 (不用引用类了) 准备好那个id
  • 写入组件/where
    在这里插入图片描述在这里插入图片描述
  • 执行成功 跳回当前控制器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 条件判断 来隐藏初始化管理员
    在这里插入图片描述

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

  • 模型—>引入类 使用静态方法
    在这里插入图片描述在这里插入图片描述
  • 伪静态 .html可以不带
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

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

  • id以隐藏于submit

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


  • 控制器首字母要大写

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

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

  • 唯一性验证
    在这里插入图片描述
    在这里插入图片描述

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

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


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

  • 还是这样 重复造轮子 把上面的文档 复制 更改增加就行
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 根据策划 数据库 来写拼搭前端页面
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • res 二维数组
    在这里插入图片描述在这里插入图片描述

  • 前端 form 表单name 对应 数据库表单
    在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 调试 打印 上传图片信息
    在这里插入图片描述在这里插入图片描述
  • 调试 上传结果
    在这里插入图片描述
    在这里插入图片描述
  • 拼装路径
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 关联查询
    在这里插入图片描述

数据表连接查询

在这里插入图片描述

  • 生成sql查询 -->返回二维数组 ---->分配到模板

TP 关联查询

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

  • 主 从表关系 相对关联关系
    在这里插入图片描述
  • 关联好了 取数据
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 文章修改
    在这里插入图片描述在这里插入图片描述

  • 编辑
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • Ctrl + F5
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 隐藏域标记
    在这里插入图片描述 在这里插入图片描述

  • 这里调整 删除路径的
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述


  • 验证码类 管理登录逻辑
    TP 拓展类 (下一个完整版)- composer/官网
    在这里插入图片描述 在这里插入图片描述

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

  • model 模型 处理数据
    在这里插入图片描述在这里插入图片描述
  • 验证完 就执行
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 登陆跳转
    在这里插入图片描述
  • 写入session
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 清除 session
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 验证码配置放在公用 config内
    在这里插入图片描述
  • 样式对齐
    在这里插入图片描述
  • 字符提取 重置 点击刷新
    在这里插入图片描述在这里插入图片描述
  • 验证验证码
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • 复用功能代码 拆分 到public 控制器
    在这里插入图片描述
  • 代码继承
    在这里插入图片描述
  • base class 继承Controller 且 公用base 已经继承 think本身controller

在这里插入图片描述

  • 科学权限认证 公用机制

  • 前端页面调用
    在这里插入图片描述
    前端后台控制器 变量接收 获得数据库 二维数组数据 写入模板在这里插入图片描述
    并 排序

在这里插入图片描述

  • 导航 链接 跳转 传参-当前栏目id
    在这里插入图片描述
  • 伪静态
    在这里插入图片描述
  • 加载模板
    在这里插入图片描述
  • header 加载导航变量 引导页面
    也要 添加需要的数据 -助手函数很方便(不用引用类)

在这里插入图片描述

  • 其他页面 的操作方法
    分配页面数据
    在这里插入图片描述- 控制器复用 直接继承
    构造初始化方法 调试
    在这里插入图片描述

  • 继承
    在这里插入图片描述

  • 前端 base 复用方法

在这里插入图片描述


在这里插入图片描述

  • 根据id 查询并分页
    在这里插入图片描述
  • 数据 循环显示
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 更改分页 查询
    在这里插入图片描述在这里插入图片描述
  • 调整样式

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

  • 跳转到 文章页 分配
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 内容补全
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 时间戳变换
    在这里插入图片描述

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


  • 推荐 数据 查找 分配
    在这里插入图片描述

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

在这里插入图片描述

  • 首页 数据 分配

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

  • 右侧栏 拆分

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

在这里插入图片描述

  • 有一些图片 链接地址 更改

  • 标签 关键字 字符替换
    在这里插入图片描述
    在这里插入图片描述
  • 保证写进数据库 的是 英文“ ,” 分割方便
    在这里插入图片描述

在这里插入图片描述


  • 相关文章调用
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 数组合并
    在这里插入图片描述
  • 重复 匹配了 处理
    在这里插入图片描述
    在这里插入图片描述
  • 去掉 数组里的 重复
    在这里插入图片描述
    在这里插入图片描述
  • 打印调试
    在这里插入图片描述
    在这里插入图片描述
  • 去重 数组变换
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 搜索功能 及分页

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

  • input 数据 查询 分配到模板
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 载入模板

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

  • 关键词 匹配逻辑 完整性
    在这里插入图片描述
    在这里插入图片描述

  • 分页
    在这里插入图片描述在这里插入图片描述

  • model 处理分页查询问题
    在这里插入图片描述在这里插入图片描述

  • 标签 也联系搜索
    在这里插入图片描述


  • 传参问题处理
    在这里插入图片描述

在这里插入图片描述

  • 关键词 加亮
    在这里插入图片描述

  • 后台 tag管理
    在这里插入图片描述
    数组拆分 数据调用
    在这里插入图片描述

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

  • 控制器
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 公用base 设定
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    类似于这种MVC架构的
    可以写博客 CMS 或者公司宣传官网都可以

-----------------

由于是3.2 版本的教程 后面会结合5.0版本进行改进 - 主要记录思路

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

  • 环境搭建
  • SVN服务器 版本控制
  • 服务器端VisualSVN 客户端 TortoiseSVN
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 导入账号

在这里插入图片描述

  • 前后台分离 操作同一个数据库
  • 创建一个WWW下的网站地址 存放源码
    在这里插入图片描述在这里插入图片描述
  • 工作拷贝
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 复制 后台框架
    在这里插入图片描述
  • 配置前后台 apache虚拟命名
    在这里插入图片描述

在这里插入图片描述

  • 前后台模板搭建
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 单独后台
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 无限分类模块设计
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 测试数据库
    在这里插入图片描述
  • 遍历表中内容select
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

无限分类模块实现

  • 字段排序
  • sql连接函数 取别名
  • 结果遍历

在这里插入图片描述
调试一下
在这里插入图片描述

  • 取值 重新命名
    再调试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 添加 前台提交

  • 添加方法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    • 数据库操作
      在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • AJAX 无限分类
    在这里插入图片描述在这里插入图片描述

  • js写的
    在这里插入图片描述在这里插入图片描述

  • 通过AJAX到数据库 取值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • public 取数据 需要的字段 返回数组
    变为json对象格式
    在这里插入图片描述

  • 传过去Id
    在这里插入图片描述
    在这里插入图片描述

  • 信息传回 ajax
    后台 删除方法
    在这里插入图片描述在这里插入图片描述


商品模块 设计

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

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

  • 图片上传 异步处理

  • 添加商品
    在这里插入图片描述

  • 测试数据
    在这里插入图片描述
    在这里插入图片描述

  • 准备模板在这里插入图片描述

Session

在这里插入图片描述

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

控制器初始化

在这里插入图片描述

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

模板布局

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

在这里插入图片描述

模板赋值

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

请求与响应

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


响应

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

url及路由

在这里插入图片描述

url和路由

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

  • 参数调用
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 命名规范
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 定义路由
    在这里插入图片描述
    在这里插入图片描述

    • 路由 + 传参
      SEO不友好 搜索引擎收录不到 抓不到三层
      在这里插入图片描述
      比较友好 收录
      在这里插入图片描述
  • 定义路由
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 s在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 生成Url地址
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/105463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MoeCTF 2023] web题解

文章目录 webhttpcookie彼岸的flagmoe图床大海捞针夺命十三枪 web http 连接到本地后&#xff0c;题目给了我们任务 第一个是要求我们GET传参UwUu第二个是要求我们POST传参Luvu第三个是要求我们cookie值为admin第四个是要求我们来自127.0.0.1第五个是要求我们用MoeBrowser浏…

C语言-程序环境和预处理(1)编译、连接介绍以及预处理函数,预处理符号详解及使用说明。

前言 本篇文章讲述了程序的翻译环境和执行环境&#xff0c;编译、连接&#xff0c;预定义符号&#xff0c;#define&#xff0c;#符号和##符号的相关知识。 文章目录 前言1.程序的翻译环境和执行环境2.编译链接2.1 翻译环境2.2 运行环境 3.预处理详解&#xff08;各预处理符号使…

基于微服务+Java+Spring Cloud开发的建筑工地智慧平台源码 云平台多端项目源码

建筑工地智慧平台源码&#xff0c;施工管理端、项目监管端、数据大屏端、移动APP端全套源码 技术架构&#xff1a;微服务JavaSpring Cloud VueUniApp MySql自主版权实际应用案例演示 建筑工地智慧平台已应用于线上巡查、质量管理、实名制管理、危大工程管理、运渣车管理、绿色…

创建一个react项目 create-next-app

之前是用的creact-react-app来创建的&#xff1a;npx create-react-app my-app 现在官网却推荐使用creact-next-app: npx create-next-app 我们把他所有的选项都选上 这里的css使用了tailwind 项目结构很奇怪啊&#xff0c;没找到.html文件&#xff0c;只在src/app/layout.t…

第4章 选择结构程序设计

if语句&#xff08;if单分支、if-else双分支、else-if嵌套&#xff09;&#xff1b;switch语句;选择结构的嵌套;选择结构程序设计方法。 1.基本要求 (1)理解三种if语句的语法结构,掌握使用if语句设计选择结构程序的方法。 (2)理解switch语句的语法结构,掌握使用switch语句设计…

竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 …

centos离线安装telnet、traceroute工具

安装包下载地址 安装包下载地址在这里 直接输入包名&#xff0c;筛选系统&#xff0c;根据自己系统版本确定该下哪个包 centos离线安装telnet 准备三个安装包 xinetd-2.3.15-14.el7.x86_64.rpmtelnet-server-0.17-65.el7_8.x86_64.rpmtelnet-0.17-65.el7_8.x86_64.rpm 三个…

latex如何对.pdf格式的图片实现裁剪

目录 问题描述&#xff1a; 问题解决&#xff1a; 问题描述&#xff1a; 在使用draw.io进行绘图&#xff0c;导出的时候不知道为什么周围会有留白&#xff0c;比如下图&#xff1a; 在导入latex的时候&#xff0c;会因为两侧的留白导致整张图片缩小。 如果直接进行裁剪.pdf&a…

学习记忆——数学篇——案例——代数——不等式——一元二次不等式

重点记忆法 归类记忆法 解一元二次不等式的步骤 1.先化成标准型&#xff1a; a x 2 b x c > 0 ( 或 < 0 ) ax^2bxc>0(或<0) ax2bxc>0(或<0)&#xff0c;且a >0&#xff1b; 2.计算对应方程的判别式 △ △ △&#xff1b; 3.求对应方程的根&#xff1b…

Apache_Log4j2查找功能JNDI注入_CVE-2021-44228

Apache_Log4j2查找功能JNDI注入_CVE-2021-44228 文章目录 Apache_Log4j2查找功能JNDI注入_CVE-2021-442281 在线漏洞解读:2 环境搭建3 影响版本&#xff1a;4 漏洞复现4.1 访问页面4.2 poc漏洞验证 4.3 在dnslog获取个域名4.4 使用bp抓包进行分析4.5 通信成功&#xff0c;此处可…

有外媒称,Linux 发行版Ubuntu 23.10也将正式支持树莓派 5

据了解&#xff0c;在树莓派 4 单板计算机推出 4年后&#xff0c;树莓派 5也在上月末正式发布&#xff0c;并且两者对比之后可以发现&#xff0c;树莓派 5主要提升性能是添加了对 PCIe 2.0的支持。 Multiable万达宝医疗ERP(www.multiable.com.cn/solutions_yl)具备严格的保质期…

Windows中将tomcat以服务的形式安装,然后在服务进行启动管理

Windows中将tomcat以服务的形式安装,然后在服务进行启动管理 第一步&#xff1a; 在已经安装好的tomcat的bin目录下&#xff1a; 输入cmd&#xff0c;进入命令窗口 安装服务&#xff1a; 输入如下命令&#xff0c;最后是你的服务名&#xff0c;避免中文和特殊字符 service.…

cartographer中的扫描匹配

cartographer中的扫描匹配 cartographer中使用了两种扫描匹配方法&#xff1a;CSM&#xff08;相关性扫描匹配方法&#xff08;暴力匹配&#xff09;&#xff09;、ceres优化匹配方法 CSM可以简单地理解为暴力搜索&#xff0c;即每一个激光数据与子图里的每一个位姿进行匹配&…

为什么手机会莫名多出许多软件?

许多手机用户都曾遭遇过这样的问题&#xff0c;他们在使用手机的过程中&#xff0c;突然发现手机屏幕上出现了一些未知的软件。这些软件并非他们主动下载的&#xff0c;但它们却显现在屏幕上。这些软件从何而来&#xff1f; 其实&#xff0c;这些软件往往是在浏览网页、阅读小…

精品Python基于django就业数据分析平台求职招聘应聘-爬虫可视化大屏

《[含文档PPT源码等]精品基于django就业数据分析平台-爬虫》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;JavaS…

从基础到卷积神经网络(第13天)

1. PyTorch 神经网络基础 1.1 模型构造 1. 块和层 首先&#xff0c;回顾一下多层感知机 import torch from torch import nn from torch.nn import functional as Fnet nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))X torch.rand(2, 20) # 生成随机…

容器化应用程序管理与分发工具集 | 开源专题 No.34

kubernetes/kubernetes Stars: 101.7k License: Apache-2.0 Kubernetes 是一个开源系统&#xff0c;用于管理跨多个主机的容器化应用程序。它提供了部署、维护和扩展应用程序的基本机制。Kubernetes 借鉴了 Google 在大规模运行生产负载方面十五年的经验&#xff0c;并结合了社…

【Excel】【latex】将EXCEL中单元格的计算关系还原为公式,用c#重构

在excel中&#xff0c;将很多个单元格&#xff0c;及其内部的公式&#xff0c;用文本的形式复制出来 Ctrl ~将 Excel 切换到公式视图&#xff0c;可以看到单元格中的公式&#xff0c;而不是公式的结果。 像平常一样复制和粘贴单元格。粘贴时&#xff0c;会看到的是单元格中的…

Android studio控制台 输出乱码解决方法

在AS的安装目录&#xff0c;找到 studio64.exe.vmoptions 文件&#xff0c; 用编辑器打开文件&#xff0c;在最后面加上下面的代码&#xff1a; -Defile.encodingUTF-8然后 重启AS。 注意&#xff1a; 下面两种方式也能打开studio64.exe.vmoptions 文件&#xff0c;但是需要确…

【ELK 使用指南】ELK + Filebeat 分布式日志管理平台部署

ELK和EFLK 一、前言1.1 日志分析的作用1.2 需要收集的日志1.3 完整日志系统的基本特征 二、ELK概述2.1 ELK简介2.2 为什么要用ELK?2.3 ELK的组件 三、ELK组件详解3.1 Logstash3.1.1 简介3.1.2 Logstash命令常用选项3.1.3 Logstash 的输入和输出流3.1.4 Logstash配置文件 3.2 E…