跟福哥学编程吧~~
介绍介绍今天福哥会带着大家实现网页控制器的逻辑以及它和路由模块的结合部分的逻辑,实现了这部分功能之后,每个用户的请求就会映射到具体的程序文件上面了。上一课我们提到过网页控制器需要借助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对...
介绍介绍JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。Java语言操作JSON格式数据是比较复杂的的,因为Java是强类型语言,针对于JSON这种格式的数据解析起来太吃力了。在...
介绍介绍JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。Python语言操作JSON格式数据是比较方便的,因为Python是弱类型语言,而且Python本身就有字典(dict)类...
介绍介绍JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。PHP语言操作JSON格式数据是有着先天优势的,因为PHP是弱类型语言,加上PHP自身的数组和JSON格式数据有着基本一致...
介绍介绍今天福哥将要给大家讲解JavaScript编程基础知识日期和时间的使用技巧,这个技术在程序开发时候的使用率还是非常高的,基本上95%以上的项目都离不开日期和时间的应用场景。关于日期和时间还是有很多知识需要了解的,如果不清楚这些的话,就会遇到很多奇怪的问题。在很多对时间控制很严格的系统里面会有非常复杂的时间处理逻辑,如果没有很好...
介绍介绍今天福哥将要给大家讲解Java编程基础知识日期和时间的使用技巧,这个技术在程序开发时候的使用率还是非常高的,基本上95%以上的项目都离不开日期和时间的应用场景。关于日期和时间还是有很多知识需要了解的,如果不清楚这些的话,就会遇到很多奇怪的问题。在很多对时间控制很严格的系统里面会有非常复杂的时间处理逻辑,如果没有很好的使用经验甚...
介绍介绍今天福哥将要给大家讲解Python编程基础知识日期和时间的使用技巧,这个技术在程序开发时候的使用率还是非常高的,基本上95%以上的项目都离不开日期和时间的应用场景。关于日期和时间还是有很多知识需要了解的,如果不清楚这些的话,就会遇到很多奇怪的问题。在很多对时间控制很严格的系统里面会有非常复杂的时间处理逻辑,如果没有很好的使用经...
介绍介绍今天福哥将会给大家讲解PHP编程基础知识日期和时间的使用技巧,这个技术在程序开发时候的使用率还是非常高的,基本上95%以上的项目都离不开日期和时间的应用场景。关于日期和时间还是有很多知识需要了解的,如果不清楚这些的话,就会遇到很多奇怪的问题。在很多对时间控制很严格的系统里面会有非常复杂的时间处理逻辑,如果没有很好的使用经验甚至...
介绍介绍福哥今天会带着大家完成网页蜘蛛的代码的最后一个部分,实现网页源代码内容写入MySQL数据库功能,实现网页信息写入ElasticSearch搜索引擎功能。这部分功能实现了之后,我们就可以转而去编写搜索引擎的前端UI功能的代码了。要实现写入ElasticSearch就需要先连接ElasticSearch,并且需要设置一个索引名称。...
介绍介绍福哥更新了Spider对象,实现了爬取网页内容,分析网页数据,写入数据库这些功能。实现了这些功能之后网页蜘蛛的基本功能也就差不多完成了!后面就可以开始编写搜索引擎的前端UI功能了,相对网页蜘蛛来说,搜索引擎前端UI就比较简单了!但是,网页蜘蛛是搜索引擎的基础,只有采集到足够多的数据,搜索引擎才可以在也会查询的时候返回用户想看到...
介绍介绍福哥今天给大家讲讲关于Python编程中的字符串编码转换的问题,这个问题在初学者编程时候会经常遇到,如果要弄清楚这里面的道道,还是需要好好学习一下的什么是编码所谓编码就是计算机标记一个汉字(或者是其他国家的文字)对应的数字,在不同编码里同样的一个汉字会对应不同的数字,比如:“福哥”在gbk编码里对应的是“205 172 184...
介绍介绍上一堂课福哥给大家展示了一个半成品的蜘蛛对象Spider,今天我们继续。做事要有目标,并努力使之达成!今天我们的目标就是:实现网页的爬取分析并将内容保存到webpages数据表当中;将提取出来的子级页面的超链接保存到webpages里面;Spider对象福哥对Spider对象的功能进行了完善,包括一些新的方法(函数)的定义和一...
介绍介绍昨天我们明白了网页蜘蛛的工作原理,今天就可以开始根据这个原理进行代码的编写了。虽然python也可以编写面向过程的程序,但是使用面向对象的方式编写程序是一个好的习惯,它更加可以满足各种复杂的业务逻辑的需要,同时代码也更容易读懂。福哥要先开发网页蜘蛛程序,所以先建立一个Spider对象,用它来实现网页蜘蛛的全部功能。Spider...
介绍介绍前面几堂课我们已经掌握了通过Python编程操作MySQL数据库和ElasticSearch搜索引擎的技巧,今天开始就可以正式编写代码了。搜索引擎分为两个部分,一个是网页蜘蛛,负责爬取网站的网页内容并且存入MySQL数据库当中,同时同步写入到ElasticSearch搜索引擎里面;另外一个是搜索界面,负责从ElasticSea...
介绍介绍今天我们学习如何通过Python操作MySQL数据库。学会使用Python操作MySQL数据库之后,我们就可以使用Python制作更为强大的应用程序了。有了数据库操作能力的应用程序,就有了数据存档的能力,能够存档的程序可以达到的功能就非常多了。在Python2.7下使用的是pymysql这个软件包,这个pymysql库的原生对...
介绍介绍我们已经设计好了搜索引擎的MySQL数据库,今天我们要开始设计ElasticSearch数据库了。ElasticSearch数据库在这个搜索引擎项目里的作用是全文检索,因为MySQL无法实现这个功能。而搜索引擎的特点是用户给出一个查询关键字,我们根据这个关键字进行全文匹配查找符合条件的文档出来返回给用户。也就是说我们只需要考虑...
介绍介绍昨天我们已经设计好了搜索引擎的模型,搜索引擎包括两个基本模型即:网站和网页。那么接下来我们就要针对这两个模型进行数据库的设计了。设计数据库要考虑的问题很多,包括数据的大小、字段的数量、读取场景,写入场景等等。除此之外还要考虑使用什么数据库引擎,因为不同的数据库引擎的特长是不一样的,我们要充分利用它们的这些特长之处,来将我们的项...
介绍介绍今天开始福哥将会带着童鞋们做项目了,虽然我们之前介绍了c/c++、java、php、python等等很多种编程语言,这些编程语言也可以独立完成一些项目的开发任务,但是如果要做出一个好项目,一般情况下只靠一种编程语言是不够的,所以福哥在带着大家做项目的时候,会同时将几种编程语言都用起来。我们的第一个项目叫做搜索引擎,就是模仿百度...
介绍介绍MongoDB是一个文档数据库引擎,文档数据库和MySQL这种关系型数据库是不一样的设计,文档数据库和Redis这种Key-Value数据库也有很大差别。不过文档数据库和Key-Value数据库都属于NoSQL型的数据库,也就是说MongoDB也是不支持SQL语句的。MongoDB相对于MySQL数据库来说有一项独有的非常强大...