使用ThinkPHP框架快速搭建网站

news/2024/5/15 10:37:57/文章来源:https://blog.csdn.net/LanSeTianKong12/article/details/46046153
使用ThinkPHP框架快速搭建网站

 

       这一周一直忙于做实验室的网站,基本功能算是完成了。比较有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。如果对于同样是Web方面新手的你有一丝丝帮助,那就更好了挖。

       以前用PHP做过一个很蹩脚的网站,为什么这么说呢,因为写的全是死代码。做完以后觉得实在是累,前端要div+css,js 后端要php,mysql,这么多东西要弄,十分头疼。所以,在接到做网站的任务后,我第一时间想到一定要使用开发框架去做,绝不能跟以前一样那么累了。

       我选择的是PHP的ThinkPHP框架。说实话,真的蛮不错的。瞬间觉得Web开发还是蛮有效率的。

       超级链接:ThinkPHP中文网

按照套路,首先贴一下实验环境:

  • 1.    WAMP(集成的那种,最Easy的几乎不需要配置)
  • 2.    ZendStudio7.2(中文网址http://www.zendstudio.net/,里面提供下载,在线注册机以及使用教程)
  • 3.    ThinkPHP框架+百度UEditor编辑器插件
  • 4.    Win7-64bit操作系统
  • 5.    浏览器(火狐,IE,Chrome),外加火狐FireBug插件用于调试以及偷样式




-------------------------------------------------------------华丽分割-------------------------------------------------------------




第一步:找网页模板(不会美工,PS,见谅。。)

       前端页面我找的是一个大学的实验室,这里就不贴了,很普通的那种。后台直接下载的模板,感觉蛮漂亮的,运行后如下图:




第二步:初识百度UEditor插件

由于我要做的是实验室的网站。实验室网站主要内容在如下几个方面:

  • 介绍实验室的成员
  • 实验室的项目,成果等
  • 实验室的新闻以及学术交流信息

可见,信息主要偏重于后台的新闻,文章信息的发布,而前台几乎不存在编辑。所以重点要在后台实现一个方便的文章发布体系

我选用了百度出品的UEditor所见即所得编辑器。主要是JS实现的,整合到后台后如下所示,功能真的很多哇:



关于UEditor的如何整合到网站中,请参考UEditor的官网,里面有详细教程。



第三步:初识ThinkPHP框架


下面开始介绍ThinkPHP框架,首先为了加强感性认识,先看一看ThinkPHP工程的目录结构:



文件夹:

  • admin是后台工程文件夹
  • home是前台工程
  • public里面用于存放CSS文件,JS文件以及网页里面的图片
  • ThinkPHP框架
  • ueditor是百度编辑器

 

下面三个PHP文件:

  • admin.php是后台工程的入口文件,
  • index.php是前台工程的入口文件。
  • config.inc.php,由于这个小项目的几乎所有数据都放在数据库里,而前后台都要连接数据库,所以所有的数据库配置代码放在了它里面。

 而剩下的buildpath ,.settings , .project 是Zend IDE生成的,不管它们。


------------------------------------------------------华丽分割-------------------------------------------------------------



由于我这里面实际是两个工程(home和admin),只要理解其中一个即可,故下面只介绍后台,即admin部分


接着往下看,看一下admin.php文件,这是需要了解的第一个文件,即后台的入口文件




几个宏定义分别指明了:

  • 1.    ThinkPHP框架的路径
  • 2.    后台应用程序目录
  • 3.    后台应用程序名称
  • 4.    开启调试模式
  • 5.    包含ThinkPHP框架下的ThinkPHP.php文件(重要!

 

下面新建一个小工程来演示一下开发过程:

比如整个工程的大目录是xxx,然后把ThinkPHP框架拷贝进来,并添加admin.php文件(如上图中的代码)



此时在浏览器里面输入:http://localhost/xxx/admin.php自动生成admin目录,如下图




打开admin目录,内容如下:



其中主要关注四个文件夹:

1.    Conf 存放工程配置文件(比如定义一些常量什么的)

2.    Lib   (最重要!存放MVC模式中的模型类和控制器类)

3.    Tpl(存放模板文件,按道理前面我们下载的模板应该放在这里)

4.    Runtime(存放运行时文件,比如缓存啊,数据库表缓存什么的)


最后贴出浏览器上的运行结果。。对不起贴的有点晚。




如果能看到上面的画面,说明ThinkPHP可以正常运行啦。下面我们继续完善吧。


------------------------------------------------------------华丽分割-----------------------------------------------------


第四步:初识MVC模式


到这里,不得不提一下在ThinkPHP中的MVC的概念。MVC很有名,叫做模型-视图-控制器模式。

 

在ThinkPHP里面:

模型(Model)可以认为就是一张数据库表。那我做的工程来说:

对于一篇文章(新闻),它的属性包括ID号,标题,作者,创建时间,最后修改时间以及文章内容。这就是一篇文章的模型。然后就按照这个思路建立对应的数据库表:





视图(View)可以认为就是用户看到的东西,即模板,或者说皮肤。

比如前面贴出的后台模板,那个在ThinkPHP概念中就是视图。

 

控制器(Action)可以认为是视图与模型之前的桥梁。因为网站上显示的内容基本全部来自众多模型们(数据库表们),而控制器负责的就是决定在哪些情况下显示哪些模型里面的哪些数据。还是拿我的例子说,我后台工程的首页对应的控制器是Index控制器。(Index控制器为所有工程的默认控制器)。但是你想,一个网站的首页一般是有很多按钮啊,超链接啊什么的,可以跳到其他地方去的东西。贴张图:




这是我的后台首页。可以看到左边有导航栏,右下边列出了数据库当前的文章信息,可以看到一共有三篇文章。比如我现在可能想做:


1.    把文章”1111测试文章发布系统”删除

2.    把文章”詹姆斯高捧第3座MVP奖杯”改成”詹姆斯高捧第4座MVP奖杯”

3.    新添加一篇别的文章


这就对应了Index控制器的不同功能了,也就是Index控制器类IndexAction的不同方法(比如取名edit()方法,delete()方法,add()方法)。当然之所以会看到页面显示,是因为默认情况下执行Index控制器的Index()方法,在该方法中调用display()方法显示模板(视图)。不信可以看默认的文件,里面的Index控制器的Index方法实现的就是HelloThinkPHP的欢迎页面。


比如:

IndexAction目录为:

/xxx/admin/Lib/Action/IndexAction.class.php

内容为:



可以看到,默认情况下在index方法中调用了$this->display()  

(注意看IndexAction 继承Action类,display方法是Action类的方法);

调用display()方法后,ThinkPHP会在对应工程的Tpl文件夹下的Index文件下下找index.html文件。其中前一个Index文件夹对应的是Index控制器,index.html对应的是index()方法。

所以,一个控制器类对应一个模板文件夹。具体对应多少个模板跟控制器类有多少个方法以及有多少个方法需要display有关。

故,此时对应的模板文件路径为:

/xxx/admin/Tpl/Index/index.html

 


细心的朋友可能要问了,你这里只说了视图(模板)和控制器啊,模型呢?你是怎么知道数据库里的那三篇文章的信息的呢?其实不然,我在index方法里面还做了一些事情,下图是精简版index方法:



可以看到,第一步,我就实例化了一个模型。模型名字是Article,前面说到模型就是数据库表,此时查看一下有哪些数据库表:



第一个表名字是think_article,可以看到还差一个前缀think_,其实这个是在配置文件中指定的,还记得前文所述的config.inc.php吗? 其配置代码如下所示:


<?php

return array(

     'DB_TYPE'              =>'mysql',

     'DB_HOST'             =>'localhost',

     'DB_NAME'            =>数据库名字,

     'DB_USER'             =>用户名,

     'DB_PWD'              =>密码,

     'DB_PORT'             =>'3306',

     'DB_PREFIX'           =>'think_',

);

?>


第二条语句就是查询数据库。ThinkPHP提供了很多种查询数据库的方法,我使用的是连贯操作法。

执行完第二条语句后$new_list变量就存储了所有文章的信息,那么怎么把它显示到界面上去呢?


看第三句话,它把该变量分配给了一个叫做’new_list’的变量  (好像同名了哇。。不过没关系,关键是assign方法),然后我们在模板文件里面进行替换就OK啦。默认情况下,在HTML里面写 {$new_list}就OK啦。当然,这里面的new_list是一个复合的变量,不是单纯的数字或者字符串。。不过ThinkPHP提供了很多循环的方法给我们使用,很是方便。


最后一条语句就是显示对应的视图文件了。我们就能把数据库中的文章信息按照视图(模板)里面定义的规则显示在浏览器中了。


---------------------------------------------------------------华丽分割-----------------------------------------------------------


源码下载

最后给出示例工程xxx的源码。有需要的朋友可以下载,可以很快的了解ThinkPHP的大概原理。


源码功能:

  • 1.后台管理员登陆
  • 2.添加文章,编辑文章,删除文章
  • 3.前台显示文章

使用方法:

  • 1.解压到网站根目录下,默认是www文件夹下的xxx文件夹




  • 2.在MySQL中新建一个数据库,比如rubydb,整理成utf8-genaral-ci


  • 3.导入数据库表文件夹下的两个数据库表 think_article 和think_user,导入后入下图:




  • 4.配置Config.inc.php文件


[php] view plaincopy
  1. <span style="font-size:16px;"><?php   
  2. return array(  
  3.     'DB_TYPE'           =>   'mysql',  
  4.     'DB_HOST'           =>   'localhost',  
  5.     'DB_NAME'           =>   '自己建一个数据库',//需要新建一个数据库!名字叫  
  6.     'DB_USER'           =>   '你的数据库用户名',     //数据库用户名      
  7.     'DB_PWD'            =>   '你的数据库密码',//数据库登录密码  
  8.     'DB_PORT'           =>   '3306',  
  9.     'DB_PREFIX'     <span style="white-space:pre">  </span>=>    'think_',//数据库表名前缀  
  10. );  
  11. ?></span>  

可见,上面的DB_NAME,DB_USER,DB_PWD需要修改

分别是 

'DB_NAME'=>'rubydb' ,

'DB_USER'  =>'你的mysql登录账号' ,

'DB_PWD'   =>'你的mysql登录密码'


  • 5.运行 http://localhost/xxx/admin.php,弹出后台登录页面:



输入数据库think_user里面的用户信息: ruby97,密码ruby97  ,再输入验证码即可登录。




选择写新闻按钮自己添加一篇文章。然后到http://localhost/xxx下面看结果吧!



源码下载链接


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

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

相关文章

如何一个人打造日PV百万的网站架构——SDCC 2013讲师曹力专访

编者按&#xff1a;CSDN年度技术盛宴SDCC 2013中国软件开发者大会将于2013年8月30-31日在北京新云南皇冠假日酒店举行。软件研发频道将采访一些与会讲师&#xff0c;谈谈他们将在会上分享的内容&#xff08;报名参会&#xff09;。 本期我们采访的讲师是糗事百科前联合创始人、…

电商网站,性能优化

电商网站&#xff0c;性能优化 问题&#xff1a; 1)当大型网站系统>10万人 一个小时内&#xff0c;会跟数据库交互10万次&#xff08;国内有京东&#xff0c;淘宝&#xff09;&#xff0c;这就会出现数据库瓶颈&#xff0c;每个数据库最大连接数&#xff08;socket&#xf…

java下的大型网站对图片的下载,存放,及压缩管理

大型网站对图片的下载&#xff0c;存放&#xff0c;及压缩管理 构建保存图片的路径&#xff1a; 1 String pathdir "/images/product/" productTypeId "/" productId "/prototype";//构建文件保存的目录 为什么要有那么多个目录&#xff0c;因…

网站制作的切图技巧

一般的网站制作步骤大体上为&#xff1a;设计效果图–》切图制作静态html模板–》嵌套至CMS&#xff0c;其中&#xff0c;切图虽然是很简单的一个步骤&#xff0c;但其中也有很多技巧&#xff0c;以下是我个人总结出来的几点。 总体上&#xff0c;把握一个原则&#xff0c;能用…

计算机组成原理与jsp总分,基于JSP的计算机组成原理教学网站的设计与开发

随着互联网技术不断的发展和成熟,开展远程教学,开发整体教学系统成为计算机发展的一个全新课题。这种方式打破了时间、空间的限制,有效地实现了教学资源和教学方法的共享、教学过程的交互性、教学内容快速的更新、教学媒体的充分利用。介绍了该教学系统的设计意图及工作原理,论…

Centos6.0下安装mono 4.0和Jexus 5.6.4,并配置运行网站

很多朋友想要在Linux下部署asp.net的网站&#xff0c;但是又苦于不懂配置环境。今天&#xff0c;我在这里给大家讲解一下如何在Centos 7.0下安装最新版的mono 4.0.0 Jexus 5.6.4&#xff0c;并配置运行网站。 首先用ssh连接linux机器&#xff0c;登录root账号。在这里直接用我…

oracle10g 是rac,dbca建库-RAC安装完成 - Oracle10.2.0.4-RAC两节点集群环境搭建_数据库技术_Linux公社-Linux系统门户网站...

Oracle用户下,dbca启动界面&#xff0c;来创建数据库实例&#xff1a;选择节点&#xff1a;配置ORACLE_SID选择ASM存储(ASM磁盘之前已经创建)换成pfile这里提示没有监听&#xff0c;选Yes&#xff0c;会自动配置监听/oracle/product/10.2.0/crs_1/log/dbcc1/crsd/crsd.log日志信…

网站用户单点登录系统解决方案

1 背景 在网站建设的过程中&#xff0c;多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同&#xff0c;也就形成了各自独立的用户库和用户认证体系。随着网站的发展&#xff0c;会出现这样的用户群体&#xff1a;以其中的一个用户…

CTFHub-备份文件下载 - 网站源码

上面一些是网页源码文件后缀&#xff0c;下面的是文件名&#xff0c;用他它们排列组合&#xff0c;最终www.zip有文件下载 但三个文件里都没有flag&#xff0c;其中flag文件的文件名有点奇怪&#xff0c;输入到网页上

bugku-网站被黑

网站和网页源代码都没有东西&#xff0c;根据题目提示&#xff0c;应该要扫描一下目录 用AppScan没扫出来 再用御剑扫描试试 第一个是题目的页面&#xff0c;第二个就是后门页面 用字典没爆出来&#xff0c;查了wp是hack&#xff0c;说要用shell专用字典

【ASP.NET 问题】IIS发布网站后出现 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误的解决办法...

新装IIS&#xff0c;然后发布网站&#xff0c;运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 于是去网上找资料&#xff0c;轻松搞定。o(∩_∩)o 哈哈 原因: vs2010默认的是4.0框架&#xff0c;4.0的…

【ASP.NET 问题】IIS发布网站后出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”的解决办法...

系统环境:win7 asp.net4.0网站挂到本地IIS上报错: google一下,发现N页解决方案,但是点进去一看前篇一律的解决方法是.将IIS7 下网站托管管道由继承模式修改为经典模式,这其实是治标不治本,iis7在经典模式下和iis6没有什么两样. 但是你修改以后也许真跑起来了,但是也有可能接着出…

【温故而知新-CSS】使用CSS设计网站导航栏

1.实现背景变换的导航菜单效果预览&#xff1a; 首页公司频道最新动态客房介绍酒店服务休闲娱乐旅行社源代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"…

【读书笔记《Bootstrap 实战》】4.企业网站

上一章有对个人作品站点进行一些优化。本章&#xff0c;轮到我们充实这个作品站点了&#xff0c;补充一些项目&#xff0c;从而展示我们的能力。换句话说&#xff0c;我们要构建一个相对复杂的企业网站主页。 下面有几个成功企业的网站&#xff1a; □ Zappos (http://www.zapp…

【读书笔记《Bootstrap 实战》】5.电子商务网站

构建了公司网站之后&#xff0c;接下来就可以考虑设计一个在线商店了。 此次的设计以上一章的设计为基础&#xff0c; 只是添加了一个包含如下元素的新页面&#xff1a; □ 包含商品小图、标题和说明的产品网格&#xff1b; □ 位于左侧的变懒&#xff0c;用于按类别、品牌等筛…

【读书笔记《Bootstrap 实战》】6.单页营销网站

我们已经掌握了很多实用 Bootstrap 的重要技能。现在&#xff0c;是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了。此次将带领大家做一个漂亮的单页高端营销网站。 主要任务如下&#xff1a; □ 一个大型介绍性传送带图片展示区&#xff0c;配有自定义的响应式…

【CSS Demo】网站页面变灰

让网站所有元素变成灰色调&#xff0c;全浏览器支持&#xff0c;使用了滤镜&#xff0c;比较吃性能&#xff0c;建议作临时方案使用。 实现效果&#xff08;点击下面的按钮&#xff09;&#xff1a; 这里放一张图片作为效果展示&#xff1a; 其CSS代码如下&#xff1a; body{-w…

IIS 网站 HTTP 转 HTTPS

最近需要做 http 链接转成 https 链接&#xff0c;所以就去弄了&#xff0c;现在记录下&#xff1a; 1.准备SSL证书 最开始的时候用的是腾讯云的免费证书&#xff0c;有效期1年&#xff0c;但只能绑定一个二级域名。测试成功后&#xff0c;就去阿里云购买了证书。 参考链接&…

课后作业:模拟婚礼网站用户名的输入框 模拟京东关闭广告 模拟下拉菜单 实现开关灯

模拟婚礼网站用户名的输入框 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>div {width: 250px;color: #6db8ff;border: #555555 solid 1px;margin: 1px auto;}in…

js 两个值得推荐的网页插件网站

插件使用方法: 点击进入 一. 轮播图插件 链接:https://www.swiper.com.cn 这个网站有各种各样的轮播图效果,种类繁多的程度出乎你的想象,下面列出几个 二. tab栏,焦点图,图片无缝滚动 链接:http://www.superslide2.com/