框架网页

python day51

别说谁变了你拦得住时间么 提交于 2019-11-29 10:08:31
今日内容 Web框架的本质 我们可以这样理解: 所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端 。 这样我们就可以自己实现Web框架了。 简易版本的自定义web框架代码: import socket ​ sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen() ​ while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.close() 总结: 用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定?所以,有一个统一的规则,让大家发送消息、接收消息的时候有个格式依据,不能随便写。这个规则就是HTTP协议,以后浏览器发送请求信息也好,服务器回复响应信息也罢,都要按照这个规则来。 HTTP协议 超文本传输协议:规定了客户端与服务端消息传输的格式 四大特性: 1.基于TCP/IP协议作用于应用层的协议 2.基于请求响应 3.无状态 4.无连接 数据格式之请求: 请求首行 请求头(一堆k,v键值对) /r/n 请求体(post请求携带的数据) 数据格式之响应: 响应首行 响应头(一堆k,v键值对) /r/n 响应体(post请求携带的数据)

Django 推导、简介

北城以北 提交于 2019-11-29 06:33:48
目 录 web应用前提知识   web应用定义、软件开发、HTTP协议及特性、动静态页面、模板渲染、web请求流程 手撸简易版本的web框架    思路推导 :。。。。。 web框架   web主流框架的分类及其特点介绍 Django简介   创建Django 项目的方式、app(应用)的概念及注意事项、Django各个文件的作用、Django必会三板斧 一、web应用前提知识 1、什么是web应用? web应用本质上就是一个socket服务端,而用户的浏览器就是一个客户端。 (这样我们就可以自己实现一个web框架) 2、软件开发架构 c/s 架构: 客户端 与 服务端 b/s 架构: 浏览器 与 服务器 b/s架构本质上也就是 c/s架构 3、HTTP协议及特性 HTTP协议的由来? 我们客户端想服务端发送请求数据,以及服务端向客户端返回数据 都需要统一的格式, 统一格式就需要一个统一的规则,这个规则就是HTTP协议。 HTTP协议: 超文本传输协议,它规定了客户端与服务端之间消息传输的格式。 HTTP协议的四大特性:   a、基于TCP/IP协议作用于应用层的协议   b、基于请求响应     一次请求一次回应,服务器不会主动向客户端发送数据   c、无状态     服务端不会保留客户端的状态,客户端每一次请求都是一次新的请求。。。。   d、无连接     HTTP 协议

爬虫框架分析之各语言爬虫框架

余生长醉 提交于 2019-11-29 06:13:04
> 看看有哪些爬虫框架 #一、前言 目前市场上爬虫框架有很多,不同语言不同类型的爬虫框架都有,然而在开发预研的时候对于选择那种 框架对于很多开发者来说尤为头疼; 本篇主要总结一下市场上主流的开发语言中有哪些主流的爬虫框架,以及爬虫框架的优劣;希望在对你在选择合适爬虫框架中有所帮助。 #二、主流语言爬虫框架列表 ##常用爬虫框架列表 JAVA | PYTHON | PHP | C# | C/C++ --- | --- | --- | --- | ---- Apache Nutch2 | scrapy | phpspider | DotnetSpider | open-source-search-engine webmagic | Crawley | Beanbun |NWebCrawler | Cobweb Heritrix | Portia | PHPCrawl | SmartSpider | upton WebCollector | PySpider | php selenium | Abot | wombat crawler4j | grab | | xNet | Spidr Spiderman | cola | | AngleSharp | Larbin SeimiCrawler | python selenium | |HtmlAgilityPack jsoup | |

Struts,Hibernate,Spring经典面试题收藏

风格不统一 提交于 2019-11-29 05:58:16
Struts,Hibernate,Spring经典面试题收藏 以备不时只需。 关键字: struts, hibernate, spring 先简单的提一下, 要开发出好的,高质量的j2ee系统, 评价系统的高低水平 ,解耦性 至关重要! 而在开发中主要分成三个层次,表现层, 服务层, 持久层。从这三层次去解藕。 spring的作用就是把服务从表现层中,抽取出來, hibernate把持久层抽取出來。 剩下的表现层交给 struts控制 但是面对那么多的框架,为什么在持久层中我们选择hibernate ,在服务层我们用spring,下面都有说。 Hibernate工作原理? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用 : 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架

初始django

て烟熏妆下的殇ゞ 提交于 2019-11-29 05:39:43
Web框架本质 https://www.cnblogs.com/liwenzhou/p/8258992.html 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 这样我们就可以自己实现Web框架了。 import socket sk = socket.socket() sk.bind(("127.0.0.1",8080)) sk.listen() while 1 : conn, _ = sk.accept() data = conn.recv(8096).decode("utf-8") conn.send(b"Http/1.1 200 ok \r\n\r\n") conn.send(b"hello") conn.close() sk.close() 用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定? 你这个网站是这个规定,他那个网站按照他那个规定,这互联网还能玩么? 所以,必须有一个统一的规则,让大家发送消息、接收消息的时候有个格式依据,不能随便写。 这个规则就是HTTP协议,以后浏览器发送请求信息也好,服务器回复响应信息也罢,都要按照这个规则来。 HTTP协议主要规定了客户端和服务器之间的通信格式, 我们发现收发的消息需要按照一定的格式来,这里就需要了解一下HTTP协议了。

前端工作3个月小结

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 05:17:05
从学习前端到投入前端工作已经有3个多月了,对前端有了一定的了解。这里写一下自己对前端的一些想法。 学习方法 我一共花了一个多月学习前端,从基本的HTML、CSS和JS,到后来的react-native、vue.js、jQuery等前端框架。感觉到前端需要学习的东西真的很多。 我使用番茄时间工作法来提高的时间利用率、提高效率。然后使用印象笔记随时随地记录下我在学习中的知识点、心得体会。最后定期整理印象笔记中乱七八糟的笔记。最后很重要的一点,作为程序员学习中必须要动手敲代码来加深理解、强化掌握知识点。 知识点 前端知识点很多很杂,但最基本的,学好HTML和JavaScript是必须的。CSS可以之后学,学好了HTML和JavaScript,我们就可以处理网页的各种业务逻辑了。而CSS许多时候是美工类帮忙完成的。下面说说这三个基本知识点。 HTML其实就是几个标签,熟悉了各个标签分别是什么就可以看懂HTML页面了,非常好理解。HTML就是一门描述网页元素的语言。 JavaScript是网页中用于处理业务逻辑的语言,语法逻辑和Java特别类似(类似到很多时候我都忘了我是在写Java还是在写JS了),入门难度只要是有一定编程经验的人应该都是挺好掌握的。而且!JS不仅仅用于控制HTML网页页面,还可以用于写SPA单页应用、用NodeJS写后端服务器、用某些框架写移动端APP…

web爬虫讲解—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

亡梦爱人 提交于 2019-11-29 04:03:23
模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url、cookie、回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其他参数,cookie、url、表单内容等 yield Request()可以将一个新的请求返回给爬虫执行 在发送请求时cookie的操作, meta={'cookiejar':1}表示开启cookie记录,首次请求时写在Request()里 meta={'cookiejar':response.meta['cookiejar']}表示使用上一次response的cookie,写在FormRequest.from_response()里post授权 meta={'cookiejar':True}表示使用授权后的cookie访问需要登录查看的页面 获取Scrapy框架Cookies 请求Cookie Cookie = response.request.headers.getlist('Cookie') print(Cookie) 响应Cookie Cookie2 =

web爬虫讲解—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

橙三吉。 提交于 2019-11-29 04:03:22
crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1、分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有这条新闻,可以看到源文件里没有这条信息,这种情况爬虫是无法爬取到信息的 那么我们就需要抓包分析了,启动抓包软件和抓包浏览器,前后有说过软件了,就不在说了,此时我们经过抓包看到这条信息是通过Ajax动态生成的JSON数据,也就是说,当html页面加载完成后才生成的,所有我们在源文件里无法找到,当然爬虫也找不到 如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地 我们首先将这个JSON数据网址拿出来,到浏览器看看,我们需要的数据是不是全部在里面,此时我们看到这次请求里只有 17条信息,显然我们需要的信息不是完全在里面

python常用框架

 ̄綄美尐妖づ 提交于 2019-11-29 03:50:41
一、Django: Python Web应用开发框架     Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,   即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 Django提供的方便,也意味着Django内置的ORM跟框架内的其他模块耦合程度高。应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块,   但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。   二、Diesel:基于Greenlet的事件I/O框架    

前端之移动端库和框架bootstrap

蓝咒 提交于 2019-11-29 02:21:03
学习移动端场景下的js事件;制作移动端特效常用的js库;介绍移动端常用开发框架Bootstrap;介绍动态样式语言less、sass、stylus的基本使用。 移动端js事件 移动端的操作方式和PC端是不同的,移动端主要用手指操作,所以有特殊的touch事件,touch事件包括如下几个事件: 1、touchstart: //手指放到屏幕上时触发 2、touchmove: //手指在屏幕上滑动式触发 3、touchend: //手指离开屏幕时触发 4、touchcancel: //系统取消touch事件的时候触发,比较少用 移动端一般有三种操作,点击、滑动、拖动,这三种操作一般是组合使用上面的几个事件来完成的,所有上面的4个事件一般很少单独使用,一般是封装使用来实现这三种操作,可以使用封装成熟的js库。 移动端js库 zeptojs Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api。 如果你会用jquery,那么你也会用zepto。Zepto的一些可选功能是专门针对移动端浏览器的;它的最初目标是在移动端提供一个精简的类似jquery的js库。 zepto官网:http://zeptojs.com/ zepto中文api:http://www.css88.com/doc/zeptojs_api/ zepto包含很多模块