跳转至

python

笨方法实现webpy的表单校验功能

最近在写一个小的demo,简单的用户注册与登录,检查在注册的时候要先检测用户名是否已经存在了,还要检查一下密码长度要不得小于3个字符

检查用户是否存在我是写在了一个单独的model.py里

1
2
3
4
5
6
def check(uname):
info = db.select('pytest',where="username=$uname",vars=locals())
if len(info)>0:
return False
else:
return True

appium简明教程(转)

乙醇的自动化教程写的挺好的,以下是转自他的cnblogs上面的博客

appium简明教程(1)——appium和它的哲学世界

什么是appium?

下面这段介绍来自于appium的官网。

Appium is an open-source tool you can use to automate mobile native, mobile web, and mobile hybrid applications on iOS and Android platforms. “Mobile native apps” are those written using the iOS or Android SDKs. “Mobile web apps” are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome on Android). “Mobile hybrid apps” have a native wrapper around a “webview” – a native control that enables interaction with web content. Projects like Phonegap, for example, make it easy to build apps using web technologies that are then bundled into a native wrapper – these are hybrid apps.

Importantly, Appium is “cross-platform”: it allows you to write tests against multiple platforms (iOS, Android), using the same API. This enables a large or total amount of code reuse between iOS and Android testsuites. 我们可以从上面的介绍里获得这样的一些信息:

  • 1,appium是开源的移动端自动化测试框架;
  • 2,appium可以测试原生的、混合的、以及移动端的web项目;
  • 3,appium可以测试ios,android应用(当然了,还有firefox os);
  • 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上; appium的哲学

mysql与mongodb命令对比

之前一直在使用mysql,最近开始接触mongodb,觉得还是有一些相似的地方,只是相应的命令不大一样,这里做下记录,对比记应该相对简单一些,mongodb使用的是python的接口

连接: mysql: mysql -h localhost -u username -p mongodb:con = pymongo.Connection('localhost',27017) 显示数据库 mysql:show databases; mongodb:con.database_names() 使用某个数据库 mysql:use database; mongodb:db = con['database'] or con.database 没有将会创建 显示所有的表 mysql:show tables; mongodb:db.collection_names() 使用某个表(mongodb中称为colection) mysql: use table; mongodb:col = db.collection or db['collection'] 没有将会创建 遍历表中的内容 mysql: select * from table[where...] mongodb: for i in col.find():print i for i in col.find_one({'key':'value'}):print i 返回值是字典 向表中插入值 mysql: insert into table valuses(......) mongodb:col.insert({'key':'value',...}) d = {'key':'value'} col.insert(d)

python中的Queue与多进程(multiprocessing)

最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程

一、先说说Queue(队列对象)

Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的“先吃先拉”与“后吃先吐”,其实就是这里说的队列,队列的构造的时候可以定义它的容量,别吃撑了,吃多了,就会报错,构造的时候不写或者写个小于1的数则表示无限多

import Queue

q = Queue.Queue(10)

向队列中放值(put)

q.put(‘yang’)

q.put(4)

q.put([‘yan’,’xing’])

在队列中取值get()

默认的队列是先进先出的

python的requests初步使用

早就听说requests的库的强大,只是还没有接触,今天接触了一下,发现以前使用urllib,urllib2等方法真是太搓了……

这里写些简单的使用初步作为一个记录

切换google的公共库缓解网站访问慢的问题

近期谷(zheng)歌(fu)抽疯,很多google的公共库文件访问缓慢或者根本就是无法访问,很多网站前端以前都是直接引用google的地址,这会或多或少的影响网站打开速度。本人博客也“不幸”引入了一些google的公共库,换了几个服务器,无论是BAE还是SAE或者国外的服务器再或者是国内的服务器,都很慢,今天查了查,将其换为360网站卫士提供的公共库资源(http://libs.useso.com/),效果果然提高不少。

这个是由360网站卫士CDN驱动的常用前端公共库以及和谐使用Google公共库&字体库的调用方法。

打开Chrome开发者工具(F12),打开网站,查看到一些引用都是error,其中一个是

python中的中文编码问题

在编程领域中,中文编码问题一向是个很头疼的问题,今天写点总结一下解决的方法

unicode与utf-8和gbk之间的转换,涉及到的函数有decode与encode

首先明确一下,python中的字符串都是以某种编码来存储的,就中文来说,以gbk与utf-8的,你虽然可以这样定义一个变量 s = u’杨彦星’,但是你可以用type(s) 来看一下它的类型,此时这个s 不是字符串,而是unicode类型,当你定义s = ‘杨彦星’的时候,这时type(s)才是str类型,但是当你直接定义s = ‘杨彦星’时会在不同的场景下出现不同的问题,windows下的cmd还好,换到一个utf-8的解析器里就是乱码,所以最好的方式是在定义有中文(或者说非英文的)字符串时以unicode来定义,然后再去解码输出。

将字符串decode成unicode

s = ‘杨彦星’

s_uni = s.decode(‘gbk’) #将s转换成unicode,decode的时候就加上这个字符原来的编码类型

s_utf8 = s_uni.encode(‘utf-8’)

s_gbk = s_uni.encode(‘gbk’)

使用web.py在BAE建立自已的电影网站

最近在网上看了一篇文章使用web.py在BAE上建立电影网站,http://www.51bigfool.com/%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E7%94%A8bae%E5%92%8Cweb-py%E6%89%93%E9%80%A0%E8%B1%86%E7%93%A3%E7%94%B5%E5%BD%B1top100%E7%9A%84.html 我自已也在此基础上做了一些改进,也在一点点的熟悉使用web.py这个框架,可以看一下我弄了一半的应用 http://movie.yangyanxing.com

准备 BAE web.py

在BAE上建立一个python的应用

快速创建即可,选择Iframe

create

web.py中关于url的总结

网页中的数据在传递的时候有GET和POST两种方式,GET是以网址的形式传参数,在web.py中有着很好的匹配,如果我们配置以下的urls

1
2
3
  urls =(
    '/','index',
    '/weixin/(.*?)','WeixinInterface'

先不考虑/weixin/后面的东西,现在我们来写index的类

1
2
3
class index:
    def GET(self):
        i = web.input(name = 'kevinkelin',age = 100)