PHP从前端到后台整站开发实战笔记-1

article/2025/10/23 4:49:06

前言

从慕课网上搞了一套ThinkPHP整站开发从前端到后台的视频教程,好好系统的学习一下MVC模式下的正规开发流程,做一下学习过程中的开发笔记.

1.系统概述

这套教程视频中使用了ThinkPHP框架,但是有点老了,用的还是3.2.3版本的,不过思路很重要,等全做好了可以考虑再用最新的5.x版本重构一遍.教程中要开发实现的是一套CMS信息管理类的后台+前台信息展示,前端用到了Bootstrap以及周边的一些js控件,系统效果先看一下:

前端首页


后台界面:


2.数据库准备

准备以下数据表:


CREATE TABLE `cms_admin` (`admin_id` int(6) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL DEFAULT '',`password` varchar(32) NOT NULL,`lastloginip` varchar(15) DEFAULT NULL,`lastlogintime` int(10) DEFAULT NULL,`email` varchar(40) DEFAULT NULL,`realname` varchar(50) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,PRIMARY KEY (`admin_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;CREATE TABLE `cms_menu` (`menu_id` int(6) NOT NULL AUTO_INCREMENT,`name` varchar(40) DEFAULT NULL,`parentid` int(6) DEFAULT NULL,`m` varchar(20) DEFAULT NULL,`c` varchar(20) DEFAULT NULL,`f` varchar(20) DEFAULT NULL,`listorder` int(6) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,`type` tinyint(1) DEFAULT NULL,PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `cms_news` (`news_id` int(8) NOT NULL AUTO_INCREMENT,`catid` int(5) DEFAULT NULL,`title` varchar(80) DEFAULT NULL,`small_title` varchar(30) DEFAULT NULL,`title_font_color` varchar(255) DEFAULT NULL,`thumb` varchar(255) DEFAULT NULL,`keywords` varchar(255) DEFAULT NULL,`description` varchar(255) DEFAULT NULL,`listorder` tinyint(3) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,`copyfrom` varchar(255) DEFAULT NULL,`username` varchar(255) DEFAULT NULL,`create_time` int(10) DEFAULT NULL,`update_time` int(10) DEFAULT NULL,`count` int(10) DEFAULT NULL,PRIMARY KEY (`news_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `cms_news_content` (`id` int(8) NOT NULL AUTO_INCREMENT,`news_id` int(8) DEFAULT NULL,`content` text,`create_time` int(10) DEFAULT NULL,`update_time` int(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `cms_position` (`id` int(5) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,`description` varchar(255) DEFAULT NULL,`create_time` int(10) DEFAULT NULL,`update_time` int(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `cms_position_content` (`id` int(5) NOT NULL AUTO_INCREMENT,`position_id` int(5) DEFAULT NULL,`title` varchar(255) DEFAULT NULL,`thumb` varchar(255) DEFAULT NULL,`url` varchar(255) DEFAULT NULL,`news_id` int(8) DEFAULT NULL,`listorder` tinyint(3) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,`create_time` int(10) DEFAULT NULL,`update_time` int(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3.准备ThinkPHP框架

官网下载ThinkPHP 3.2.3 Core

http://www.thinkphp.cn/down/611.html

解压后得到基本的框架结构,第一次从浏览器打开后会自动生成Common,Home,Runtime等相关文件结构

4.配置ThinkPHP配置参数

4.1配置Application/Common/Conf/config.php

<?php
return array(//'配置项'=>'配置值'	'LOAD_EXT_CONFIG' => 'db',    //加载外部配置文件db.php,该文件存放位置与config.php同级别'MD5_PRE' => 'lian',        //自定义的配置参数,后面进行MD5加密的时候用到的后缀
);

4.2新建Applicaion/Common/Conf/db.php配置数据库连接信息

<?php
return array(//'配置项'=>'配置值'	'DB_TYPE' => 'mysql','DB_HOST' => '127.0.0.1','DB_USER' => 'root','DB_PWD' => '','DB_PORT' => 3306,'DB_NAME' => 'muke','DB_CHARSET' => 'utf8','DB_PREFIX' => 'cms_',
);

http://chatgpt.dhexx.cn/article/hCnguIfF.shtml

相关文章

PHP之后台开发需要做什么——即时通信IM

关于“即时通信IM”&#xff0c;腾讯云的官方文档&#xff0c;是这样介绍的&#xff1a;即时通信&#xff08;Instant Messaging&#xff0c;IM&#xff09;基于QQ 底层 IM 能力开发&#xff0c;仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力&#xff0c;帮助您实现…

通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库

作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料&#xff0c;微信搜索【程序员高手之路】&#xff0c;回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。 目录 前言 一、备份 step1&#xff1a;使用system登…

expdp的用法

exp/imp与expdp/impdp的用法区别 1&#xff1a;把用户usera的对象导到用户userb,用法区别在于fromuserusera touseruserb ,remap_schemausera:usera 。例如 imp system/passwd fromuserusera touseruserb file/oracle/exp.dmp log/oracle/exp.log; impdp system/passwd directo…

expdp/impdp 详细参数解释

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输 数据对象的机制。该实用程序可以使用以下命令进行调用: 示例: expdp scott/tiger DIRECTORYdmpdir DUMPFILEscott.dmp 您可以控制导出的运行方式。具体方法是: 在 expdp 命令后输入 各种参数。要指定各参数, 请使用关…

Oracle详解:exp/imp和expdp/impdp的区别

Oracle详解:exp/imp和expdp/impdp的区别 结论&#xff1a; 在10g之前&#xff0c;传统的导出和导入分别使用EXP工具和IMP工具&#xff0c;从10g开始&#xff0c;不仅保留了原有的EXP和IMP工具&#xff0c;还提供了数据泵导出导入工具EXPDP和IMPDP。 1、exp和expdp最明显的区…

使用expdp(非本地)远程导出数据

背景&#xff1a; 前段时间&#xff0c;需要从异地一个测试数据库中将测试数据(一张表)导入本地库&#xff0c;表数据量大约500万&#xff0c;字段160多个&#xff0c;开始用了exp/imp方式&#xff0c;速度奇慢&#xff0c;不能忍&#xff0c;于是转而使用expdp/impdp方式。 e…

运维 —— expdp、impdp

一、exp/imp与expdp/impdp 1&#xff09;exp和imp是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 2&#xff09;expdp和impdp是服务端的工具程序,他们只能在ORACLE服务端使用, 不能在客户端使用。 3&#xff09;字符集的问题到expdp/impdp数据泵已经消除…

expdp / impdp 用法详解

一、注意事项&#xff1a; EXP和IMP是客户端工具程序&#xff0c;它们既可以在客户端使用&#xff0c;也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序&#xff0c;他们只能在ORACLE服务端使用&#xff0c;不能在客户端使用。 IMP只适用于EXP导出的文件&#xff0c;不适…

expdp/impdp 数据泵导入导出

业务场景&#xff1a; 在工作中&#xff0c;涉及到oracle数据库迁移&#xff0c;使用navicat等其他工具 容易报错&#xff0c;一系列问题很麻烦&#xff0c;今天记录一下操作流程及个人理解&#xff08;文章参考了很多文档和博客&#xff09;&#xff1b; EXPDP数据导出 请自…

rest_framework--过滤器filters--搜索

rest_framework–过滤器filters–搜索 view from rest_framework.pagination import PageNumberPagination from rest_framework import mixins from rest_framework import viewsets from rest_framework import filtersfrom .models import Goods from .serializers import G…

gateway整合filters

Unable to find GatewayFilterFactory with name AddRequestParamter 首先确定你要做的是用nacos整合gateway&#xff0c;然后使用gateway配置filters对请求进行修改。 一、首先在gateway微服务的application.yml或者bootstrap.yml文件进行filter的配置 // A code block ser…

php apply filters,WordPress学习——apply_filters()详解

前两天学习了 add_filters() 函数,详见>>> WordPress学习——add_filter()详解 ,今天趁热打铁再来学习下它的使用。一般情况下 add_filters() 有两种方式触发,一种是当程序运行到特定时候 WordPress 程序会判断用户是否对某些参数做了新的定义,如果有则优先使用用…

filters过滤器

这是通过过滤器写的一个只显示10个字的效果图。 1&#xff09;&#xff1a;什么时候用到过滤器&#xff1f; 绑定一些复杂数据类型的时候用到过滤器 2&#xff09;&#xff1a;以下两种方式定义过滤器&#xff1a; 第一种&#xff1a;Vue.filter()定义全局过滤器&#xff0…

vue filters的使用

filters 过滤器&#xff1a;「Vue.js 允许你自定义过滤器&#xff0c;可被用于一些常见的文本格式化。过滤器可以用在两个地方&#xff1a;双花括号插值和 v-bind 表达式 (后者从 2.1.0 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部&#xff0c;由“管道”符号指示&…

【前端】Vue---过滤器filters详解

一、认识过滤器: 格式化数据的一个工具 过滤器的作用:用于文本格式化,仅仅作为格式化操作,不做复杂的业务处理过滤器的使用方式:通过管道符号(|)来使用过滤器的使用位置:mustache插值和v-bing的表达式 二、过滤器的使用 //如何使用使用过滤器&#xff1f;我们用一个叫做管道…

Fiddler工具 — Fiddler过滤器(Filters)详解

1、Filters介绍 Filters&#xff1a;过滤器&#xff0c;帮助我们过滤请求。 如果需要过滤掉与测试项目无关的抓包请求&#xff0c;更加精准的展现抓到的请求&#xff0c;而不是杂乱的一堆&#xff0c;那功能强大的 Filters 过滤器能帮到你。 总结&#xff1a;Filters过滤器的…

Vue项目中过滤器(filters)的用法

过滤器使用场景 在调取接口的返回数据的时候&#xff0c;我们经常能够得到各种Number类型的数据。 这种格式的数据&#xff0c;很多时候都是表明对应的类型。 如果直接返回到页面上展示&#xff0c;对于操作人员来讲&#xff0c;没有任何意义。 所以&#xff0c;一般的情况…

vue初学篇----过滤器(filters)

过滤器使用&#xff0c;直接上代码 <template><div class"filters"><h1 v-text"filtersTitle"></h1><input v-model"filtersText"/><div>{{filtersText | filtersTextChange}}</div></div> <…

mysql删掉数据库失败_如何删除MySQL数据库?

mysql删掉数据库失败 MySQL is a very popular opensource database it is used by a lot of different types and size companies. In this post, we will look at how to drop or delete MySQL databases? MySQL是一种非常流行的开源数据库,许多类型和规模的公司都在使用它…

数据库如何删除数据

1、drop (删除表)&#xff1a;删除内容和定义&#xff0c;释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。 drop语句将删除表的结构被依赖的约束&#xff08;constrain),触发器&#xff08;trigger)索引&#xff08;index);依赖于该表的存储过程…