回复内容: 这些书都是文档的纸质化而已,撑死多了几个例子没啥区别,反正我都不看。Python是非常简单的语言,简单到不需要看一本书去学。看看网上的文档就是了。语言足够简单,才会让你不要浪费太多精力在语言本身上,而是可以花更多时间去研究有用的事情。比如WEB,数据库,科学计算之类。而学习这些则是去看具体开源项目的文档,也不需要看书。好的技术是没有存在感的,他是如此的好用,以至于使用时你往往忘记了他的存在。他的...
我现在想到的方法只有每天自动把网站爬下来 然后对比新旧网站的HTML文件 才决定有没有更新回复内容: 1 第一次先请求某个网页,抓取到本地,假设文件名为 a.html。这时文件系统有个文件的修改时间。2 第二次访问网页,如果发现本地已经有了 a.html,则向服务器发送一个 If-Modified-Since 的请求(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)。 把 a.html 的修改时间写到请求里。3 如果网页更新了,服务器会返回一...
之前用Python 2.7版本的httplib做接口测试时,运行代码都是正常的, 最近开始用Python 3.3之后,再去看以前的代码,发现import httplib出现错误:Unresolved import :httplib, 运行代码时也报错:ImportError: No module named httplib 查找各种资料发现原来Python 2.x中的"httplib"模块在Python 3.x中变成了"http.client",就怪之前只了解了两个版本区别是print语句输出在3.x中要加(),看来要详细了解所有区别了~ 附上代码供参考...
在HeadFirstPython网站中下载所有文件,解压后以chapter 3中的“sketch.txt”为例:新建IDLE会话,首先导入os模块,并将工作目录却换到包含文件“sketch.txt”的文件夹,如C:\\Python33\\HeadFirstPython\\chapter3代码如下:>>> import os>>> os.getcwd() #查看当前工作目录C:\\Python33>>> os.chdir(C:/Python33/HeadFirstPython/chapter3) #切换包含数据文件的文件夹>>> os.getcwd() #查看切换后的工作目录C:\\Python33...
要求:分别以james,julie,mikey,sarah四个学生的名字建立文本文件,分别存储各自的成绩,时间格式都精确为分秒,时间越短成绩越好,分别输出每个学生的无重复的前三个最好成绩,且分秒的分隔符要统一为“.” 数据准备:分别建立四个文本文件james.txt 2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21mikey.txt 2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,...
1. 需求说明 由于openstack底层中MySQL使用了主从AB复制,为了监控数据库的主从状态信息,需要对MySQL的主从状态进行监控,从而保障数据库底层正常运行,为openstack提供更好的功能。本文对数据库执行监控,具体内容参考下面。2. 程序内容#!/usr/bin/env python #_*_ coding:utf8 _*_ #author:happyliu #用于监控MySQL主从复制状态import os import sys import os.path import urllib import urllib2 import MySQLdb import loggi...
Python全栈之路系列之SQLAlchemySQLAlchemy的是Python SQL工具包和对象关系映射器,让应用程序开发者的全部功能和SQL的灵活性。它提供了一套完整的众所周知的企业级持久性模式,专为高效率和高性能的数据库访问,改编成一个简单的Python化领域语言。SQLAlchemy的哲学SQL数据库的行为不像对象集合的较具规模和业绩开始关系; 对象集合表现得不像越抽象开始关系表和行。 SQLAlchemy的目的是满足这两个原则。SQLAlchemy认为数据库是关系...
Python全栈之路系列之MySQL SQL注入SQL注入是一种代码注入技术,过去常常用于攻击数据驱动性的应用,比如将恶意的SQL代码注入到特定字段用于实施拖库攻击等。SQL注入的成功必须借助应用程序的安全漏洞,例如用户输入没有经过正确地过滤(针对某些特定字符串)或者没有特别强调类型的时候,都容易造成异常地执行SQL语句。SQL注入是网站渗透中最常用的攻击技术,但是其实SQL注入可以用来攻击所有的SQL数据库。SQL注入的实现创建SQLdb...
Python全栈之路系列之MySQL存储过程存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。存储过程过接收的参数参数描述in仅用于传入参数用out仅用于返回值用inout既可以传入又可以当作返回值创建存储过程创建一个简单的存储过程-- 修改SQL语句的结束符为% delimiter % -- 创建这个存储过程先删除 DROP PROCEDURE IF EXISTS proc_p1 % CREATE PROCEDURE proc_p1() -- 开始 BEGIN -- SQL语句块...
对某个表进行增/删/改操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行增/删/改前后的行为。创建触发器基本语法插入前CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END插入后CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END删除前CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EA...
Python全栈之路系列之MySQL表内操作先创创建一个表用于测试-- 创建数据库 CREATE DATABASE dbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci; -- 创建表 CREATE TABLE `tb` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` char(15) NOT NULL, `alias` varchar(10) DEFAULT NULL, `email` varchar(30) DEFAULT NULL, `password` varchar(20) NOT NULL, `phone` char(11) DEFAULT ‘13800138000‘, PRIMARY KEY ...
Python全栈之路系列之MySQL外键先来个例子来说明什么是外键以及外键的作用,so,XO公司现正处于一种迅速发展的状态,从最初的12人的团队发展到现在的300人,那么问题就来了,发展的越快,人员与部门就越来越多,这是老大要求我们做一个人员管理系统,用于查询入职人员的信息等。起初我们想用一个表来实现所有的人员统计,创建Personnel库,用于存放公司员工的信息,指令如下:CREATE DATABASE personnel DEFAULT CHARSET utf8 COLLA...
Python全栈之路系列之MySQL基本数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数字类型日期和时间类型字符串类型数字类型类型大小用途BIT-二进制TINYINT1字节小整数值INT or INTEGER4字节大整数值BIGINT8字节极大整数值DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2小数值FLOAT4字节单精度浮点数值DOUBLE8字节双精度浮点数值BOOL, BOOLEAN-布尔值BIT[(M)]二进制位(1...
Python全栈之路系列之MySQL视图视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作表来使用。创建视图创建一个名称为v1的视图,其功能就是查询color表中的所有数据CREATE VIEW v1 AS SELECT * FROM color;查看视图使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建、更新和删除操作,仅能做查询用。s...
关系数据库基本运算.tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:bl...