- 博客(33)
- 收藏
- 关注
原创 爬虫-煎蛋MM图
之前学了用爬虫抓糗百的段子,但是呢,爬段子有什么好爬的,这次我们来学怎么爬美女图。先上代码 这里主要用到urllib中的urlretrieve()函数,用这个函数将远程数据下载到本地。我们说,之前就说过,上网是为了获取资源,而资源的命名就是通过URL的,因此我们只需要抓取图片的URL,保存到本地就行了。urlretrieve(url, filename = None, reporthook =
2017-04-14 15:12:44
1303
原创 爬虫--糗百
想必大家在搜爬虫教程的时候都看到这一篇爬糗百教程 http://python.jobbole.com/81351/这个教程很赞,但这是15年的,里面有些地方要调整,照搬的话可能会掉坑里去,比如我先贴一个我改编后的代码 说一下坑:13行中用到了decode和encode.原因是按照教程代码的话,中文会显示乱码,编码这个问题是老大难了,一直都没有细细地去研究。总之是先解码为utf-8,然后再编
2017-03-24 21:56:27
408
原创 Flask源代码--Flask构造函数
一个最基本的flask结构from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return "<h1>Hello, World!</h1>"if __name__ == '__main__': app.run()首先是调用Flask构造函数创建一个app实例,这个实例其实就是WSGI应用程
2017-03-23 15:58:25
1130
原创 Flask-自定义头像
狗书上面的头像是gavatar提供的,可能需要翻墙。因此我需要做一个能够自定义头像的功能。主要参考了https://ncitycode.com/python/flask/2016/6/18/,很快就做出来了。P1 模型狗书上的User模型是avatar_hash,这里换成avatar.并且把下面的gavatar()函数删掉,因为我们已经不用它提供的头像了 P2 表单编辑个人资料的表单添加一个上传文
2017-03-19 16:32:19
2114
原创 Flask-Todolist功能
之前已经将狗书的网站做好了,现在想自己添加点功能。今天先做了一个Todolist,写的比较简单,效果如图 1建一个todolist的蓝本init.py怎么写,以及怎么把蓝本注册到程序中,这些书上都有写。2建模型Model一个储存事件Event,一个储存类型Category,因为以后要自己添加事件的类型,比如休闲,学习,健身…。并且在User模型中加上这一句,将User和Event关联起来 我这里
2017-03-17 19:17:40
3895
2
原创 Cookie-用户识别机制
生活场景你现在是一个酒店经理,负责招待客人。每天接待几十个客人,当然其中会有很多熟客。如果你想成为一名顶尖的酒店经理,那么你必须知道这些熟客的姓名,性格,喜好,爱吃什么,对什么忌口,如果你能够做到这一点,那么客人会觉得非常有面子,会和你成为朋友,回头客也会越来越多,因为你的服务,客人的体验感非常棒。你离顶尖也就不远了。现在来看一下各种网站,企鹅会在你生日的时候给你发祝福,X博会根据你的喜好来推送新闻
2017-03-16 17:09:04
2041
原创 网关
个人比较推崇费曼的学习方式,那就是你在学习一个新的概念时,要去联想简化,直到你能够用直白的语言讲解给一个陌生人听,且他能听懂。计算机世界其实就是人类世界的抽象,因此当我在学习网关这个概念的时候,我首先想的是:生活中的网关是什么样子?生活场景我们说,人与人之间是通过语言上的交流来传达信息的,但是语言本身是多元化的,试想一下一个中国人和一个西班牙人坐在一起,如何通过语言进行交流?光用手笔划得到的信息也是
2017-03-16 15:51:09
596
原创 git
本节解决如何将本地程序上传到github中P1: 注册GitHub账号P2:点击“+”号键,选择New responsitory P3:输入仓库名,点击最下面create创建 获得github仓库名:https://github.com/你的github用户名/仓库名.git 如我这里就是:https://github.com/pythonkid888/name.gitP4:启动git命令
2017-03-16 04:04:34
396
原创 Flask-heroku部署相关问题
个人认为狗书最难的地方就是部署,尽管我这是第3次部署,但还是花了一天的时间才完成。期间遇到了各种坑爹的问题,一卡就是4,5个小时,有时候你上stackoverflow去找也找不到解决方法。因此这一章主要记下我跌到过的坑1 创建仓库如果你的程序没有托管在Git仓库中,那么必须在自己电脑上创建一个仓库。cd到程序所在位置,我这里是/xhugit init 或者git init xhu #在xhu目
2017-03-16 01:58:06
784
原创 Flask-REST架构
基本的博客网站已经建设完毕。书中第14章API部分,提到了Web服务的REST架构。什么叫架构,作为一个小白,一听到架构这个词觉得好高大上,后来看了下国外文献,里面有个 architectural,妈的不就是建筑么!!盖个房都要按照基本法,不能瞎盖,同理,Web服务器也要按照一定的原则来搭建。REST是比较流行的搭法,遵循6个特点,换句话说,符合下面6个特征的架构方式,就是RESTful的客户端-
2017-03-10 17:48:05
1023
原创 Flask-关注者(自引用关系)
之前我们谈到的关系,都是两张表之间的互相联结,比如学生和课程、角色和用户。但是“关注”功能,是用户之间的互相关注,跟其他表没关系,就一张User表。黄焖鸡被称之为一只鸡的传说,现在我遇到了一张表的联结。。。一个用户可以关注多个用户,同时,他自己也可以被多个用户关注。所以 这是一个多对多的关系。要用到关联表,看图follows就是关联表,它储存着每一个关注和被关注的记录,如 鸣人关注小樱 小樱关
2017-03-09 18:16:20
1678
原创 Flask-多对多关系
看了第四遍Miguel Grinberg写的《Flask Web》一书,前面部分都非常顺利,但到了关注者这一章,被多对多关系卡住了。在写本篇博客时我脑子里还是一团浆糊,边写边想吧。在说多对多关系之前,先回顾一下一对多关系一对多拿之前的章节来说,有两张表,分别是Role表和User表。 Role表:普通用户,管理员 User表:用户名,邮件,地址,电话。。。我们知道,一个用户只能有一种角色,但一种
2017-03-09 17:04:40
4249
3
翻译 Flask-login
Flask-login提供用户session管理,它解决了用户登录,登出,在长时间内能记住你的用户的session。用处: - 储存已激活的用户ID到session中,方便用户登录和登出 - 对已登录用户或登出用户限制视图 - 提供“remember me”功能 - 帮助你防止你的session被cookie小偷盗掉 - 将认证扩展和Flask整合到一起然而,它无法做到:不提供
2017-03-04 16:03:49
1279
原创 URL
首先,我们想一想,上网是为了什么?有的是为了打游戏,有的是为了浏览网页,有的是为了看电影,有的是为了听音乐。简言之,你上网就是为了能从网上得到你想要的资源。“”资源“”这个词很重要,Web信息的交流实际上就是资源之间的传输转换。一切我们所需要的东西都是资源。因此,我们上网就是为了获取资源那么问题来了,怎么去获取资源呢?比如在生活中,你想看《火影忍者》,那么你就要知道哪里有《火影忍者》的资源。你采取的
2017-02-27 18:17:22
504
原创 MySQL-子查询(嵌套)
了解子查询的最好方法就是看例子现在我们来看看orders表和orderitems表orders表 orderitems表 现在我想要查找所有订购物品id为TNT2的客户,怎么查? orderitems里有prod_id orders表里有cust_id 但这两项在两张表里,怎么查? 我们说,关系表关系表,两张表中肯定有关联的项,一比较,发现都有一个order_num列。下面是检索思路通
2017-02-17 11:58:48
26635
原创 MySQL-分组
分组是把数据分为几个逻辑组,以便对这些组分别进行聚集计算先看一个例子,我们想看下供应商1003的所有产品SELECT COUNT(*) AS prod_numFROM productsWHERE vend_id = 1003;可以知道供应商1003的产品一共有7个。那现在我想分别看一下每个供应商的产品数,难道要一个个像上面那样检索吗?如果供应商有100个我们就要打100次?想想就可怕。因此,分
2017-02-17 11:08:57
502
原创 MySQL-聚集函数(汇总)
现实生活中我们想要的数据常常是汇总好的数据,比如想要最大值,最小值,平均值,求和等。 聚集函数 说明 avg() 列的平均值 count() 列的行数 max() 列中最大值 min() 列中最小值 sum() 列中值的和AVG()平均值先看下产品表SELECT prod_name, prod_priceFROM products;我们来看看所有产
2017-02-16 11:10:04
2682
原创 HTTP概述
场景:想象一下你是木叶村的火影,现在你想同砂忍村的风影建交。你必须指派一名忍者来传达建交文书,为确保文书的完好,你指派的忍者必须非常可靠,无论遇到多么危险的情况,都能准确完好地将文书传达到风影手里。这名忍者叫卡卡西,啊不,叫HTTP(数据传输协议)。现在知道了吧,HTTP就是一个可靠的信使。即使你在北极,将数据传达到南极,HTTP也会完整地将数据传递过去。在Web世界中,不是影和影的建交,而是客户端
2017-02-14 11:35:28
430
原创 MySQL-函数处理
四种函数处理文本函数数值函数时间函数系统函数文本函数之前我们有用过rTrim()去掉右边多余的空格,这就是文本函数。其他的还有转换大小写Upper(),Lower()等SELECT vend_name, Upper(vend_name) AS vend_name_upcaseFROM vendors;还有一个有意思的函数 Soundex().拟声匹配。比如现在我们的customers表
2017-02-14 09:58:32
334
原创 MySQL-创建计算字段
在谈计算字段之前,我们先想一想。储存在数据库中的原始表给我们提供了足够的数据,比如products表中就有商品id,商品名,供应商id,单价。但是实际生活中,比如超市收银员,他们在打单据的时候可不是直接提取原始表单打出来,而是打出一个有商品名,商品单价,和总价的新格式的表单。这个是数据库里没有的,这就是计算字段的用途,用来对原始数据进行加工,从而返回我们需要的表单数据和格式。拼接字段我们先进行一种叫
2017-02-13 22:39:07
3475
原创 MySQL-正则表达式进行复杂匹配
我们先来看下商品名称列SELECT prod_nameFROM products;现在如果我们想要匹配商品名含有“1000”的商品,如果用简单匹配,应该是SELECT prod_nameFROM productsWHERE prod_name LIKE "%1000%";我们现在用正则表达式SELECT prod_nameFROM productsWHERE prod_name REG
2017-02-13 21:40:42
8080
1
原创 MySQL-通配符(简单的匹配)
之前的搜索都是鉴于我们已经知道数据的情况下进行的,生活中往往有这种情况存在:我是班级的班主任,现在我想知道班级里所有姓李的学生一共有几个,分别叫什么。这样的话我们怎么使用搜索条件?很简单,利用通配符来匹配形如李X或者李XX,所有符合这种形式的都筛选出来就行了。通配符就是用来匹配的。必须使用LIKE操作符来运用通配符,且区分大小写%(匹配任意次数的任意字符)%是使用最多的通配符,它匹配任意次数的任意字
2017-02-11 21:53:29
6665
1
原创 MySQL-WHERE搜索数据
我们在使用数据库提取数据的时候一般都不会整行都需要,往往是提取符合条件的子集数据。因此有必要增加一个搜索条件来精确查找我们需要的数据。WHERE将会帮助我们搜索数据.#我们先来看一下由产品名称和价格组成的数据SELECT prod_name, prod_priceFROM products如果我现在想要买名为Fuses的产品,我想快速知道它的价格,我们可以SELECT prod_name, p
2017-02-10 18:25:39
457
原创 MySQL-排序检索
关系数据库设计理论认为:如果没有明确规定排序,则检索出的顺序是没有意义的。因此我们之前用SELECT…FROM…;来检索数据,得出的数据的顺序是没有意义的。那么怎么对检索出的数据进行排序呢? 我们用ORDER BY 子句 SELECT prod_nameFROM productsORDER BY prod_name; #按照prod_name进行排序当然,prod_name中也会有相同数据
2017-02-09 22:50:05
599
原创 MySQL-检索
检索两要点:检索什么从哪里检索语法就是SELECT 列名 #检索哪一列FROM 表 #从哪张表检索现在有一个表,名为products。我们看一下这张表里有哪些列(字段) DESCRIBE products;看到有vend_id列(供应商id),好,现在来看看这一列是什么样的SELECT vend_idFROM products;可以看到vend_id
2017-02-09 22:04:29
1165
原创 MySQL简介
在说MySQL之前,我们先来搞清楚数据库和数据库管理系统(DBMS)的区别。数据库:存放表的容器 数据库管理系统(DBMS):用来创建数据库这个容器的软件实际上你并不直接访问数据库,而是通过DBMS来代替你访问数据库MySQL是一种数据库软件(DBMS)DBMS可以分为两类基于共享文件系统:Microsoft Access、FileMaker基于客户机-服务器: MySQL, Oracle什
2017-02-09 16:35:06
1920
原创 数据库基本概念
什么是数据库?数据库就是一个文件柜,里面存放着各种文件数据。数据库的应用?你在上网的时候可能没意识到,其实到处都会用到数据库。比如 你在登录知乎的时候,要输入用户名和密码才能登进去,那服务 器是怎么知道你输入的用户名和密码是正确的呢?当然是在背后 提取数据库里管理用户名和密码的表单,一核对,就能知道你输 入的对不对。再比如你去ATM机取钱,插入银行卡,输入密码的 时候,ATM机同样是根据数
2017-02-09 14:27:24
548
原创 使用SocketServer创建TCP/UDP同步服务器
为了快速搭建服务器,标准库中有个高级模块SocketServer它提供了一些可供使用的类(使用类就是会了封装那些繁琐的细节)我们来看看SocketServer中提供的2个重要的类TCPServer/UDPServer 网络同步服务器StreamRequestHandler/DatagramRequestHandler 2种处理器,处理客户请求注:SocketServer请求处理器的默认行为
2017-02-08 22:09:57
2025
转载 UDP服务器和客户端程序实例
出自《Python核心编程》UDP不同于TCP:由于是无连接的,所有服务器不需要listen(夏娃不听对面亚当的呼喊)所以也不会用accept()返回客户端连接给下属去处理创建一个UDP服务器#-*- coding:utf-8 -*-from socket import *from time import ctimeHOST = 'localhost'PORT = 20000ADDR = (H
2017-02-08 20:48:38
1380
转载 TCP服务器和客户端程序实例
本章出自《Python核心编程》中的实例创建一个TCP时间戳服务器,用来对客户的信息添加个时间功能from socket import *from time import ctimeHOST = '' #HOST为空,表示电话可以bind在任何主机上PORT = 20000 #0~65535,小于1024为系统保留端口(政府号码,哈哈哈)ADDR = (HOS
2017-02-08 16:56:56
772
原创 缓冲区
由于对硬件知识的缺乏,因此好多概念都难以理解。就像这个缓冲区,平时看电影,知道缓冲是干嘛的,但让我解释这个概念,我就不知道怎么说了。说到底还是不知道啥叫缓冲。缓冲是内存里预留的一部分存储空间。内存是啥?暂时存放CPU数据的地方,一切程序都在这里运行。关系着你计算机的性能。占用太多内存的资源,就会让计算机卡出翔。因此,我们在平时使用的时候必须保持内存干净,足够。那为啥还要在内存里放一个缓冲区?生活场景
2017-02-08 16:25:51
478
原创 创建Socket
Python中的Socket模块中的Socket()函数可以帮助我们创建手机格式手机 = socket(机型, 连接方式, protocol = 0)机型:老人机(AF_UNIX), 智能机(AF_INET) 连接模式: 高清模式(SOCK_STREAM), 流畅模式(SOCK_DGRAM) protocol一般不填,默认值为0现在我们来创建一个TCP/IP Socket 对象from soc
2017-02-08 15:54:15
743
原创 客户端-服务器架构、Socket、TCP/UDP简介
假如有一天你丢失了银行卡 你要到银行去找工作人员(服务器) 排队挂号等待(FCFS原则) 轮到你了,就去柜台和工作人员沟通(建立连接) 对工作人员说“我卡丢了,要挂失”(向服务器提出请求) 工作人员会帮你办理挂失手续(提供服务,返回响应) 办理完之后你就可以离开(一个事务结束后断开服务) 工作人员继续为下一个客户服务(服务器继续等待下一个客户端的请求)以上便是生活中的客户端-服务器架构
2017-02-08 15:09:33
1291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人