一、python發送郵件 (mail模塊)html
#導入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
二、superpython
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
三、web
import bcrypt bcrypt.hashpw 加密
四、
mongodb自帶數據庫mongodb
def __init__ (self, db): self.db = db self.fs = gridfs.GridFS (db)
五、上傳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.上傳圖片存入數據庫app
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)