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

news2024/12/28 4:39:28

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.coloradmin.cn/o/1083100.html

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

相关文章

阿里云存储I/O性能、IOPS和吞吐量是什么意思?

云盘的存储I/O性能是什么&#xff1f;存储I/O性能又称存储读写性能&#xff0c;指不同阿里云服务器ECS实例规格挂载云盘时&#xff0c;可以达到的性能表现&#xff0c;包括IOPS和吞吐量。阿里云百科网aliyunbaike.com分享阿里云服务器云盘&#xff08;系统盘或数据盘&#xff0…

如何选购高效便捷的软件行业项目管理系统

如何选择一个高效便捷的软件行业项目管理系统&#xff1f;推荐一款好用的项目管理软件Zoho Projects&#xff0c;Zoho Projects是少数可以给客户开通权限的项目管理软件&#xff0c;相信Zoho Projects权限管理功能会受到题主的欢迎。有了这个功能&#xff0c;项目外的客户可以参…

机器学习笔记 - GluonCV:基于MXNet/PyTorch + Kinetics400 + 各种先进网络的动作识别的预训练模型

一、简述 GluonCV 提供计算机视觉领域最先进 (SOTA) 深度学习算法的实现。它旨在帮助工程师、研究人员和学生快速制作产品原型、验证新想法并学习计算机视觉。 同时支持 PyTorch 和 MXNet。 GluonCV 提供了分类、检测、分割、姿势估计、动作识别、深度预测这几类的预训练模型,…

腾讯云轻量2核4G5M可容纳多少人访问?

腾讯云2核4G5M服务器支持多少人在线访问&#xff1f;卡不卡&#xff1f;腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户…

UE5.3.1 无法创建C++ 工程问题解决方法

UE5.3.1 创建C工程提示DONET问题&#xff0c;直接下载最新版本的NET8.0的SDK安装即可解决&#xff01; 下载地址&#xff1a;下载 .NET 8.0 SDK (v8.0.100-rc.2) - Windows x64 Installer

软件工程与计算总结(八)软件设计基础

一.设计思想的发展 1958&#xff1a;软件这个名词第一次在公开刊物上使用~60年代中后期and70年代前中期&#xff1a;结构化编程、逐步求精、自顶向下理念是程序设计主要方法70年代中后期and90年代&#xff1a;结构化设计方法、抽象数据类型、信息隐藏、封装、继承、多态等思想…

LVGL-TLSF内存管理算法源码详解(1)-内存池初始化

LVGL-TLSF学前预备知识点 TLSF内存池管理结构示意图: TLSF控制器支持对多内存池的管理&#xff0c;但LVGL只使用一个内存池 内存池存储结构示意图 ------------------- | lv_tlsf_t | - control_t TLSF分配器 ------------------- | Free Block 1 | ----------…

第十一章 文件操作

文件名 一个文件要有一个唯一的文件标识&#xff0c;以便用户识别和引用。文件标识包括3部分&#xff1a; (1)文件路径&#xff1b;(2)文件名主干&#xff1b;(3)文件后缀。 文件分类 根据数据的组织形式&#xff0c;数据文件可分为ASCI文件和二进制文件。 数据在内存中是以…

【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda C版本源码编译教程前言准备工具cuda/cudnncmakeopencv4.8.0opencv_contrib CMake编译VS2019编…

速通RabbitMQ的五种常见消费模型

目录 引言1. 简单队列模型&#xff08;Simple Queue Model&#xff09;优缺点及适用场景代码示例 2. 工作队列模型&#xff08;Work Queue Model&#xff09;优缺点及适用场景代码示例 3. 发布/订阅模型&#xff08;Publish/Subscribe Model&#xff09;优缺点及适用场景代码示…

Rockchip平台 远程OTA服务搭建

Rockchip平台 远程OTA服务搭建 1. 概述 远程OTA升级服务是一种通过互联网远程更新Rockchip设备的固件和软件的方法。这种服务对于确保设备安全性、修复错误和添加新功能非常重要。 本文档将引导您完成在Rockchip平台上搭建远程OTA升级服务的过程。 在阅读本文的前&#xff…

使用Cpolar内网穿透技术实现远程访问内网BUG管理系统

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

利用人工智能做射击游戏辅助(二)AlphaPose环境配置

一、anaconda安装 官网地址&#xff1a;Free Download | AnacondaAnacondas open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.https://www.anaconda.com/download 下载之后下一步就可以&#xff0c…

BCDD-A03-21-L3、BCDD-A02-33-L1比例方向阀控制器

BCDD-A02-31-L1、BCDD-A02-33-L3、BCDD-A02-21-S5、BCDD-A02-23-D5、BCDD-A03-31-L5、BCDD-A03-33-L1、BCDD-A03-21-L3、BCDD-A03-23-S5是直动式比例换向阀&#xff0c;通过比例电磁铁直接驱动阀芯工作。此类阀工作时是通过电子放大器提供比例电磁铁的驱动电流&#xff0c;比例…

哈夫曼树及哈夫曼编码详解及代码实现[C/C++]

文章目录 哈夫曼树及哈夫曼编码哈夫曼树的定义与原理引例路径长度定义 带权路径长度哈夫曼树哈夫曼树的构造方法构造方法示例 哈夫曼树的代码实现哈夫曼树的结点定义哈夫曼树的构造 哈夫曼编码哈夫曼编码方式哈夫曼编码解码的准确性 哈夫曼编码的代码实现运行示例 哈夫曼树及哈…

Android绑定式服务

Github:https://github.com/MADMAX110/Odometer 启动式服务对于后台操作很合适&#xff0c;不过需要一个更有交互性的服务。 接下来构建这样一个应用&#xff1a; 1、创建一个绑定式服务的基本版本&#xff0c;名为OdometerService 我们要为它增加一个方法getDistance()&#x…

PDF编辑软件哪个好用?PDF文档怎么编辑修改内容

在生活中&#xff0c;为了方便文件传输&#xff0c;会将文件扫描或转换成PDF格式&#xff0c;但是如果需要编辑修改会比较麻烦&#xff0c;这时一款好用的PDF编辑器显得十分重要。今天就带大家了解下PDF编辑软件哪个好用&#xff0c;PDF文档怎么编辑修改内容。 一、PDF编辑软件…

【Android 从入门到出门】第一章:Android开发技能入门指南

&#x1f935;‍♂️ 个人主页&#xff1a;艾迦洼的个人主页 ✍&#x1f3fb;作者简介&#xff1a;后端程序猿 &#x1f604; 希望大家多多支持&#xff0c;如果文章对你有帮助的话&#xff0c;欢迎 &#x1f4ac;&#x1f44d;&#x1f3fb;&#x1f4c2; 目录 &#x1f44b;第…

C#(Csharp)我的基础教程(三)(我的菜鸟教程笔记)-控件对象与窗体容器集合(Control)的探究与学习

目录 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09;2、控件对象与窗体容器集合&#xff08;Control&#xff09; 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09; 主窗体对象的创建&#xff1a;在Program类里面&#xff1a; Appli…

Windows操作系统登录双因素认证解决方案 安当加密

实现Windows操作系统登录双因素认证&#xff0c;可以通过安当ASP身份认证平台进行设置。安当ASP身份认证平台提供了多种双因素认证方式&#xff0c;包括USB Key ID、OTP&#xff08;动态口令&#xff09;等&#xff0c;可以灵活选择和配置。 以下是使用安当ASP身份认证平台的US…