1、python发送邮件 (mail模块)
#导入smtplib和MIMEText
import smtplib
from email.mime.text import MIMEText
#set mail service account
mail_host="smtp.qq.com" smtp服务器
mail_user="en.liu@kuaiyou.com"
mail_pass="kuaiyou610611612"
def send_mail(to_list,sub,content,mailer = mailer):
'''
to_list:发给谁
sub:主题
content:内容
send_mail("yijie.liu@kuaiyou.com","sub","content")
'''
to_list = "liuen6@gmail.com"
tilte = "This is a good day!"
content = "Yes"
msg = MIMEText(content,_subtype,_charset) content邮件内容,_subtype邮件类型,_charset编码
msg['Subject'] = title
msg['From'] = mail_user
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(mail_user, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False
2、super
class A(object):
def __init__(self):
print "this is A __init__"
def who(self):
print "this is who"
class B(A):
def __init__(self):
print "this is B __init__"
super (B, self).who()
b = B()
结果:this is B __init__
this is who
3、
import bcrypt
bcrypt.hashpw 加密
4、
mongodb自带数据库
def __init__ (self, db):
self.db = db
self.fs = gridfs.GridFS (db)
5、上传zip包
mime_type_map_sdk = {
'.zip' : 'application/zip',
'.pdf' : 'application/pdf',
}
class MongoFS (object):
def __init__ (self, db):
self.db = db
self.fs = gridfs.GridFS (db)
def put(self):
self.fs.put (data, _id = filename, filename = filename, content_type = ctype, catalog = catalog, **kw)
class MongoSDKFS (MongoFS):
def __init__ (self, db, catalog = 'sdkpackage'):
super (MongoSDKFS, self).__init__ (db)
self.catalog = catalog
def put (self, f, filename, changelog='', system=''):
import os
_, ext = os.path.splitext (filename)
if not mime_type_map_sdk.has_key (ext):
raise ValueError ('filename is not zip')
else:
super (MongoSDKFS, self).put (f, mime_type_map_sdk[ext], filename, self.catalog, changelog = changelog, system = system) 调用MongoFS里面的put方法
下载包:
html:
<td>
<a href="${request.route_url('web.sdk.package',filename=appUpdateZip.get('filename', ''))}"><strong>Android SDK 下载</strong></a>
</td>
py:
class Storage (object):
def __init__ (self, request):
self.request = request
self.db = request.db
@view_config (route_name = 'web.sdk.package', renderer = None)
def sdkPackage (self):
filename = self.request.matchdict.get ('filename')
sdkfs = MongoSDKFS (self.db)
content, content_type, basename = sdkfs.get (filename)
response = Response (content_type = str(content_type))
response.app_iter = content
return response
6.上传图片到本地指定路径且不存入数据库
development.ini: ;当前项目路径 rote = %(here)s py文件: import os msg = {"msg":"no success"} if self.request.method == "POST": im = self.request.POST.get("image", "") settings = self.request.registry.settings directory = '%s/adview/static/images/'%(settings['rote']) filepath = '%s%s'%(directory, im.filename) input_file = im.file msg.update({"msg":"file exists"}) if not os.path.isfile(filepath): #判断图片是否存在,若不存在执行以下代码 output_file = open(filepath, 'wb') input_file.seek(0) while 1: data = input_file.read(2<<16) if not data: break output_file.write(data) output_file.close() msg.update({"msg":"success"}) return msg
7.上传图片存入数据库
html:
<tr> <td>名称</td> <td style="color: red;"><input type="text" name="name" id="name"></td> </tr> <tr> <td>图片信息</td> <td><input type="file" name="imageInfo" id="imageInfo"></td> </tr>
py文件:
if self.request.method == 'POST': addSchema = ResAddSchema() try: appstruct = addSchema.deserialize(self.request.POST) #验证数据 imageName = appstruct["name"] image = self.request.POST.get("imageInfo", "") Idimage = self.uploader._upload_icon_(image,imageName + '_' + 'image')
_upload_icon_方法:
class FileUploader(object): def __init__(self,db): self.db = db def _upload_icon_(self, _FILE_, new_name, onlyGetName = False): ''' 上传图片 @param _FILE_: @param new_name: @return: ''' #upload_dir = 'd:\\' if type(_FILE_) != unicode: filename = _FILE_.filename #split by '.', won't get the correct ext. name, ext = os.path.splitext(filename) filename = '%s%s' % (new_name.lower(), ext.lower()) if onlyGetName: return filename input_file = _FILE_.file imageFs = MongoImageFS(self.db) imageFs.put(input_file, filename) s = imageFs.get(filename)[1] return filename filename = "" return filename def getImage(self,fileName): imageFs = MongoImageFS(self.db) ret = imageFs.get(fileName)
MongoImageFS:
class MongoImageFS (MongoFS): def __init__ (self, db, catalog = 'appimage'): super (MongoImageFS, self).__init__ (db) self.catalog = catalog def put (self, f, filename): import os _, ext = os.path.splitext (filename) if ext: ext = ext.lower() if not mime_type_map_image.has_key (ext): raise ValueError ('filename is not image') else: super (MongoImageFS, self).put (f, mime_type_map_image[ext], filename, self.catalog) def get (self, filename): return super (MongoImageFS, self).get (filename)
MongoFS :
class MongoFS (object): def __init__ (self, db): self.db = db self.fs = gridfs.GridFS (db) def put (self, f, ctype, filename, catalog, **kw): if not hasattr (f, 'read'): raise TypeError ('Invalid file-like object') if not ctype: raise ValueError ('Invalid content-type') data = f.read () try: self.fs.put (data, _id = filename, filename = filename, content_type = ctype, catalog = catalog, **kw) except FileExists, e: self.fs.delete (filename) self.fs.put (data, _id = filename, filename = filename, content_type = ctype, catalog = catalog, **kw) return pages def get (self, filename): if self.fs.exists (filename): f = self.fs.get (filename) return (f, f.content_type, filename) else: return (None, None, None)