Archive for web-2

真心不懂css,以前写点小东西,不是扒就是用的bootstrap。现在要我自己写一个支持ie6的界面,有点慌。 bootstrap是只支持ie7+,虽然有写ie6的hack,可能是我用的不好,效果不喜欢。 自己大体测试了一下,ie6不支持bootstrap中的布局方面和组件那些导航什么的。 http://twitter.github.com/bootstrap 现在bootstrap网站提供自己制定功能,可以选择自己使用的css功能,我只用了Base CSS和Alerts,再有需要就重新添加导出一份。网站布局的设定我就找了一个1kbgrid,http://www.1kbgrid.com/。很方便,很小。配合使用写了三个页面感觉很不错。 css设计也是一门艺术,但是第一次学时可能教材不好,安不下心来感觉很乱。以后就不再想学了。

Continue

apache在本机上访问正常,但是用ip访问为403禁止访问! apache配置文件修改: <Directory "D:/wamp/www"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mo

Continue

在wamp下的开发环境,查找资料有两种方法。使用query,使用prepare。看的代码是第二种,网上说第二种效率高,并且安全。 总结使用方法: &nbsp; <pre lang="php"> $sth = $dbh->prepare('update db set zh_CN= :str where SN=:SN'); $sth->bindParam(':str',$str,PDO::PARAM_STR,12); $sth->bindParam(':SN',$SN); $sth->execute(); $sth->lastInsertId(); $sth->closeCursor(); </pre> 源代码使用bindValue(),lastInsertId()返回id。

Continue

安装时没有安装桌面环境。 <strong>1.查看centos系统版本</strong>:命令lbs_release -a <strong>2.mysql配置。</strong> mysql从安装光盘中选择安装的。版本是5.0.77 修改/etc/my.cnf文件 default-character-set=utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set=utf8 增加 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/v

Continue

django中csrf的验证: Django是在post中有一个字段<code>CsrfViewMiddleware</code> 进行相关验证,验证过程很简单,从Cookie中拿出token,然后从POST中拿出<code>csrfmiddlewaretoken</code>,然后块俩做一个字符匹配。因为恶意网站无法读取你的Cookie(因为浏览器的同源策略),所以无法获得Cookie里的CSRF Token,无法伪造出csrf,POST就会失败,这样就不会产生安全问题。 ajax提交post表单时,从网上找到一个感觉不错的方法记录。 <pre lang="javascript">function getCookie(sName){ var aCookie=document.cookie.split("; "); for(var i=0;i&lt;aCookie.length;i++){var aCrumb=aCookie[i].split("=");if(sName==aCrumb[0]) return(aCrumb[1]);}return null;}</pr

Continue

很简单的代码,记录一下。 <pre lang="python"> import Image image = Image.open('a.jpg') import cStringIO buf = cStringIO.StringIO() image.save(buf, image.format,quality=75) data = buf.getvalue() a = u.writeFile('/this/logo.jpg',data,True) </pre> 应用在 使用django,用户上传图片后,将图片转存到别的服务器。但是转存需要对图片进行处理,但是quality设定的保存,不知道可不可以在不是image.save()的时候。写的这个是保存时放到内存,然后直接提交到图片服务器。

Continue

当需要将上传的文件保存到别的服务器,而又不修改views里的代码,下面可能对你有点用。 Python26\Lib\site-packages\django\core\files\storage.py 这个文件里有一个FileSystemStorage类,类里的函数_save()进行了上传文件的保存。先上代码: <pre lang="python"> def _save(self, name, content): full_path = self.path(name) print full_path,name # Create any intermediate directories that do not exist. # Note that there is a race between os.path.exists and os.makedirs: # if os.makedirs fails with EEXIST, the directory was created

Continue

今天用python进行网站数据采集,该站主要有这么几种措施防止数据采集: 1、div标签不标准。闭合标签跑太远,导致采集不准确。 2、放置干扰字符。这种直接提示错误,没有办法采集。错误提示:'ascii' codec can't encode character u'\u3009' in position 5 解决方案: 第一种如果处理不好会带有许多原站信息,采用缩小div标签的范围,但是效果不明显。感觉用正则判断比较不错,但是又经常将标签前后放置很多空格和换行,还是很麻烦。 第二种,根据提示的字符,找到对应的字符“〉”,我到原文中搜索一看,差,震惊。竟然这么写的:“&lt;p〉”。我是没有直接替换,采用保存到文件,然后手动修改,再读取文件处理。

Continue

在抓取网页数据进行html分析的时候,以前一直使用HTMLParser,文档:http://docs.python.org/library/htmlparser.html 自从知道HTMLParser后,一直感觉他就是一个神器,分析简单快捷,几行代码搞定了。 这次在总页面抓取使用HTMLParser,没有问题,很快实现结果。但是在获取详细信息的页面时候,开始提示错误了:HTMLParseError: malformed start tag,各种google,其中有一大部分的结果是关于Beautiful Soup的,于是我了解了Beautiful Soup。HTMLParser还有一个缺点,对编码的处理也不是很友好。 开始安装的Beautiful Soup最新版本4.4.1,有问题,也是报这个错误。由于前面搜索知道换成版本3.07a就好了,直接又换了一个版本。先说官网地址:http://www.crummy.com/software/BeautifulSoup/,Beautiful Soup 3.07a下载地址:http://www.crummy.com/software/Be

Continue

maxmind.com提供了一个服务,通过引入一个js文件(http://j.maxmind.com/app/geoip.js),可以把他判断到的用户的国家、城市、经纬度等信息加入到页面中来。 <pre lang="html"> <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script> <script> var lat = geoip_latitude(); var lon = geoip_longitude(); alert(lat); alert(lon); </script> </pre> 其他功能函数 function geoip_country_code() { return 'CN'; } function geoip_country_name() { return 'China'; } function geoip_city() { return 'Shanghai'; } function geoip_region() { r

Continue