介绍介绍Tomcat是一款免费的专门用以运行Java程序的web服务器软件。Tomcat是很多学习Java语言的童鞋们的开发环境的web服务器软件的选择,Tomcat也是很多中小型网站或者平台的生产环境的web服务器软件的选择。Tomcat目前已经被Apache基金会授予麾下了,我们可以通过tomcat.apache.org得到关于T...
介绍介绍今天福哥来给大家讲解一下关于Tomcat服务器的虚拟主机的配置方法,前面福哥有一篇《Tomcat学习笔记》专门介绍Tomcat的知识的文章。不过,文章里面针对Tomcat的虚拟主机的部分介绍的不够详细,只有server.xml配置文件里面的各种的标签的用途的基本介绍,而这些标签怎么使用?在各种情况下如何组合?搭配之后的效果是怎...
介绍介绍我们的TFPHP已经实现了路由TFRouter、控制器TFController、模型TFModel的模块的实现,同时我们还将php的数据库操作对象PDO扩展封装到了我们自己的对象TFDO里面。目前的TFPHP已经可以足够支持完成一般网站、小型平台的开发框架了。今天福哥会解决TFPHP的加载问题,大家都发现了,每次我们建立了新的...
介绍介绍今天我们来完成数据库操作对象TFDO的设计和实现,TFDO是基于PDO扩展开发的,所以我们需要在环境里面配置PDO扩展,使用TFLinux的童鞋们就省去了这个步骤,因为福哥已经带着大家配置了PDO扩展了。有的童鞋可能会有疑问,既然PDO可以实现对数据库的操作,我们为什么不直接使用PDO对象而非要基于它封装一个TFDO对象呢?难...
介绍介绍福哥在使用Python的pymysql进行开发的时候发现了一个问题,如果在Python程序运行结束之前通过MySQL的控制台终端对数据库里面的数据进行了更新的话,再在Python里面去查询的时候发现数据竟然是更新之前的旧内容,这是怎么回事呢?事务机制InnoDB原来是因为默认情况下MySQL的数据库的引擎都是InnoDB类型的...
介绍介绍前面福哥给大家介绍了使用pymysql操作MySQL数据库的方法,使用pymysql查询数据使用fetchone或者fetchall方法,但是无论是fetchone还是fetchall得到的数据结果都是list类型的,里面并不包含字段名称。但是在实际的编程当中通过list的索引去定位字段值还是很不方便的,相比较还是dict类型...
介绍介绍上一课大家跟福哥学会了在我们的TFLinux系统上面安装Kafka软件,今天福哥要带着大家学习使用Python去操作Kafka消息系统的方法。Python操作Kafka可以使用pykafka这个库来实现,看这个命名是不是很眼熟?对了,类似的库名还有一个就是用来操作MySQL数据库的pymysql。pykafka库的语法和pym...
介绍介绍上一课大家跟福哥学会了在我们的TFLinux系统上面安装Kafka软件,今天福哥要带着大家学习使用Java去操作Kafka消息系统的方法。Java操作Kafka可以使用apache官方提供的库,既然是官方的库,自然兼容性是没有问题的了。安装依赖在pom.xml里面增加依赖项<!-- kafka --&...
介绍介绍使用IDEA连接TFLinux上面的kafka发现长时间连不上去,查看控制台信息得到如下的报错信息:Connection to node -0 could not be established. Broker may not be available什么?节点不可用?怎么可能?原因首先,通过telnet验证TFLinux的90...
介绍介绍上一课大家跟福哥学会了在我们的TFLinux系统上面安装Kafka软件,今天福哥要带着大家学习使用PHP去操作Kafka消息系统的方法。PHP操作Kafka需要借助rdkafka库,我们可以在github上面下载到源代码进行安装。因为rdkafka是作为PHP扩展部署的,所以我们不需要重新编译PHP环境。安装下载下载librd...
介绍介绍Apache Kafka是一个开源分布式事件流平台,由数千家公司用于高性能数据管道、流媒体分析、数据集成和任务关键应用。基本信息安装环境CentOS:CentOS Linux release 7.6.1810 (Core)Linux:Linux version 3.10.0-1062.el7.x86_64GCC:gcc ver...
介绍介绍上一课福哥带着大家学习了Java的FreeMarker模板引擎的使用技巧,其实FreeMarker除了可以通过指定模板根目录的方式加载模板外,还有非常多的个性化的模板加载方式,在不同的场合下使用适合的加载方式会让我们编写代码更加方便,同时运行效率也会更高。FreeMarker支持的模板加载方式包括字符串加载(StringTem...
介绍介绍开发一个网站需要考虑几个问题,首先就是编程语言,其次就是开发框架,最后还需要考虑模板引擎。编程语言这里我们自然是Java语言了;开发框架就是编写网站后端功能模块的基础框架,这里福哥选择的是TFSpring框架;最后的模板引擎,就是在制作用户界面所使用的处理模块,也就是MVC架构里面说的视图,这里福哥就要引出今天的主角FreeM...
介绍介绍开发一个网站需要考虑几个问题,首先就是编程语言,其次就是开发框架,最后还需要考虑模板引擎。编程语言这里我们自然是PHP语言了;开发框架就是编写网站后端功能模块的基础框架,这里福哥选择的是TFPHP框架;最后的模板引擎,就是在制作用户界面所使用的处理模块,也就是MVC架构里面说的视图,这里福哥就要引出今天的主角Smarty了。S...
介绍介绍Python这种脚本语言福哥已经给大家介绍过了,现在童鞋们应该已经会安装python的开发环境了,接下来我们需要针对python语言进行一个系统的学习。首先学习一门编程语言最先要学习的是语言的语法,学习编程语言的语法包括常量与变量、输入与输出、条件语句(if)、循环语句(for,while)、交换语句(switch,case)...
介绍介绍今天我们放松一下,做一个小的调整,把我们电脑上开发给TFLinux虚拟机的web目录关闭掉,我们只单独地把tfphp项目的文件夹共享给TFLinux使用。这样做的目的是为了今后学习更多知识之后,可以将每个项目单独“发布”给TFLinux虚拟机使用,而不需要把它们都想办法复制到web这个目录下面。取消web共享首先我们先取消对“...
介绍介绍今天福哥要带着童鞋们设计TFPHP的模型模块TFModel对象的设计,模型模块的职能就是对数据进行存储和读取,存储数据都是在一些外部介质上进行的,诸如:数据库,文件,内存等等。也就是说,模型模块需要连接这些外部介质的能力,说直白些就是模型模块需要可以连接MySQL,可以连接Redis,可以连接ElasticSearch等等外部...
介绍介绍今天福哥会带着大家实现接口控制器的逻辑以及它和路由模块的结合部分的逻辑,实现了这部分功能之后,就可以开发响应AJAX请求的接口了。接口控制器一般情况下是采用JSON作为传输数据的格式的,所以这里面会用到php自带的两个函数json_encode和json_decode。当然,除了JSON格式外,接口还会有XML数据格式以及自定...
介绍介绍今天福哥会带着大家实现网页控制器的逻辑以及它和路由模块的结合部分的逻辑,实现了这部分功能之后,每个用户的请求就会映射到具体的程序文件上面了。上一课我们提到过网页控制器需要借助Smarty这个模板扩展实现,所以我们需要先下载最新版本的Smarty模板扩展包,把它安装到我们的TFPHP里面。由于Smarty是第三方的代码,福哥打算...
介绍介绍福哥今天要带着大家完成控制器模块TFController对象的设计,控制器模块是web框架的核心模块之一,它负责管理控制网站数据,需要高度的兼容性和高度的灵活性,便于开发者进行高效地开发工作。设计控制器模块比路由模块要复杂许多,因为控制器模块有很多能力需要我们一个一个实现,今天我们就先把这些能力一个一个地列出来,逐一的设计它们...
介绍介绍童鞋们今天福哥就要带着大家完成路由对象TFRouter的功能了,首先福哥和大家先想一想如何映射才能起到安全又灵活的双重目的。第一点:既然要安全就是不能直接通过浏览器就可以访问到,这里面就必须借助路由的基本功能将非法请求进行一个屏蔽处理。第二点:除了安全还需要灵活,灵活就是高度的自由,也就是说我们不能对项目开发人员进行过多的限制...
介绍介绍今天我们主要需要达到的目标就是解决路由模块的核心功能,实现资源路径的映射功能。要实现资源路径的映射就需要能够对资源路径映射的操作有控制权,需要获得资源路径映射的控制权就需要借助Apache的rewrite模块了。Apache的rewrite模块是一个很厉害的模块,它实现在用户发起的请求达到服务器之后由服务器进行URI解析之前的...
介绍介绍福哥打算开始教给大家web编程,相比较java和php两种语言来说,php更加容易上手,所以福哥打算先教给大家基于php语言的web编程。web编程一定是建立在web框架上面进行的,福哥在对比yii和laravel以及福哥自主研发的tfapi三个web框架之后,觉得还不如带着大家一起做一个属于我们自己的web框架,这样可以让大...
介绍介绍上一课我们知道了什么是框架以及框架在编程当中起到的作用是什么,框架在编程当中的作用就是大幅减少相似项目开发过程中的重复工作。既然框架要解决的是相似项目的开发过程中的重复工作,那么区别很大的项目又该怎么办呢?例如:我们要开发一个Windows桌面程序,或者我们要做一套web系统的接口,又或者我们要做一个留言板网页,很显然这些不同...
介绍介绍福哥今天要跟大家讨论的主题是——框架,框架在编程里面的作用简单一句话解释就是:框架可以帮助我们快速地完成开发任务。咱们打个比喻,我们要组装一台兼容机电脑,我们会怎么做呢?当然首先我们需要去购买电脑配件,包括CPU、内存、显卡、主板、电源、机箱、显示器、键盘、鼠标等等。接着我们需要把主板安装到机箱里面,然后将CPU、内存、显卡插...
介绍介绍今天开始我们要做搜索引擎的“界面”部分了,我们给这个工具起个名字——搜索器,因为我们使用的是Python编写的搜索器,所以我们的搜索器是控制台形式的。搜索器的名称是Searcher,搜索器的启动程序文件名称是Searcher.py,搜索器包含一个库文件lib/Searcher.py。搜索器的功能是这样的,启动搜索器Search...
介绍介绍福哥发现使用pip安装软件包特别的慢,大概是从大洋彼岸下载软件包遇到了堵车吧,怎么办呢?还好我大中华地大物博,这个pip的安装源镜像也是有很多大佬平台提供了支持,真的是非常感谢~~下面福哥就教给童鞋们更换pip安装源的方法了。配置查看pip配置信息查看当前pip的配置信息pip config list设置p...
介绍介绍福哥今天给大家系统的讲一讲Python中对日期和时间的处理的技巧,在python中处理日期和时间需要用到time和datetime软件包,这两个软件包是内建的不需要单独安装,可以直接import进来使用。在程序里获取时间实际上就是得到运行程序的电脑或者服务器的时间,也就是说如果将电脑或者服务器的时间更改了,运行程序得到的时间也...
介绍介绍JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。JavaScript语言操作JSON格式数据是相当得心应手的,因为JavaScript是孕育JSON的摇篮,JSON本身就...
介绍介绍福哥在使用selenium的时候遇到了一个问题,就是页面有些元素和数据是通过AJAX渲染的,而且采用的是异步加载的方式实现的AJAX功能,这样在selenium认为页面已经加载完成了的时候其实数据还没有渲染上,这个可愁坏福哥了!经过研究发现selenium有两个功能就是可以实现福哥想要的效果,一个是WebDriverWait对...