- 浏览: 79166 次
文章分类
- 全部博客 (136)
- 我的技术资料收集 (98)
- 具体技术 (1)
- 的技术资料收集 (4)
- All Articles (1)
- 机器学习 Machine Learning (1)
- 网络编程 (1)
- java (2)
- ava (1)
- 零散技术 (1)
- C# (3)
- 技术资料收集 (1)
- CQRS (1)
- 数据库技术(MS SQL) (1)
- .Net微观世界 (1)
- Oracle SQL学习之路 (1)
- C/C++ (1)
- JS/JQ (1)
- Js封装的插件/实例/方法 (2)
- 敏捷个人 (2)
- Javascript (1)
- 程序设计---设计模式 (1)
- Bug (1)
- 未知分类 (1)
- 程序设计 (1)
- Sharepoint (1)
- Computer Graphic (1)
- IT产品 (1)
- [06]JS/jQuery (1)
- [07]Web开发 (1)
- .NET Solution (1)
- Android (3)
- 机器学习 (1)
- 系统框架设计 (1)
- Others (1)
- 算法 (1)
- 基于Oracle Logminer数据同步 (1)
- 网页设计 (1)
- 原创翻译 (1)
- EXTJS (1)
- Jqgrid (1)
- 云计算 (1)
最新评论
想必大家都知道sina推了一个叫Sina App Engine(SAE)的东西,就是模仿google的GAE啦.这个东西可以做免费的服务器用,SAE最近支持了python,作为一个业余的python爱好者,天上掉下的馅饼岂有不吃之理?
本屌的业余爱好就是看微博,糗百上的搞笑段子,一碰到经典搞笑的图片就想保存下来留作日后慢慢欣赏。所以呢,我就在SAE上用python搭了一个小网站,上传些平时存下来的搞笑图片:http://yesyouknow.sinaapp.com.(基情提醒:不要把本屌的小网站搞瘫了)可是这样每次看到搞笑图片的都先要保存到本地,然后还要找时间打包上传,想想都烦的慌啊。
还好有强大的chrome,在简单的看了chrome开发教程后(教程点我),本屌依葫芦画瓢做了一个扩展,可以一键上传图片到本屌的小网站。想试一试的基友们可以下载这个扩展:点我,打开下载后的文件只要直接将yesyouknow.crx文件拖拽到chrome浏览器窗口上就能安装了.最后在网页图片上右击便会弹出如下菜单:
看到那个”上传到yesyouknow”的菜单了嘛,点了过后就会上传到yesyouknow.sinaapp.com啦,刷新下网站就会看到刚刚上传的图片鸟.在yesyouknow网站上的图片可以直接引用,也可以到SAE的管理后台批量下载,这样是不是很方便了呢?
下面介绍实现方法,关于如何在SAE用python建站,可以直接去SAE首页以及SAE python手册查看,这里本屌就不罗嗦了.直接上代码.
SAE Python支持web.py,所以开发方便了不少.
1. 网站首页:index.py
这里很简单就是从storage存储中获取图片的链接列表,然后按时间排序每页显示4张图片.
# -*- coding: utf-8 -*-
import sae
import web
import string
class Index:
def GET(self):
page_index=-1
user_data=web.input(page='0')
page_index=string.atoi(user_data.page)
st=sae.storage.Client()
st_list=st.list('yesyouknow2')
url_list=[]#只存放排序后的url,其它的都去掉
for d in st_list:
url_list.append(st.url('yesyouknow2',d['name']))
url_list.sort()
url_list.reverse()
html_pic=''
part_list=[]
html_info=""
if page_index>=len(st_list):
page_index-=4
html_info='<div align="center">~~~~~~~~~这是最后一页了~~~~~~~~~~</div>'
elif page_index<0:
page_index=0
html_info='<div align="center">~~~~~~~~~~这是第一页~~~~~~~~~~~~~~</div>'
if page_index+4>=len(url_list):
part_list=url_list[page_index:]
else:
part_list=url_list[page_index:page_index+4]
for puburl in part_list:
#print part_list
html_pic+='<div align="center"><img src="%s"/></div>'%(puburl.encode('utf-8'))
html_space="<p> </p>"
html_page=r'<div align="center"><a href="?page=%s">上一页</a> <a href="?page=%s">下一页</a></div>'%(str(page_index-4),str(page_index+4))
html_head=r'<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>嘿嘿</title></head><body>'
html_end=r'</body></html>'
html_count=r'<div align="center">当前共%s张图片</div>'%(str(len(url_list)))
form=r'''
<div align="center">可以上传单个图片,也可以打包为zip文件批量上传.文件大小控制在7M以内
<form action="http://yesyouknow.sinaapp.com/upload" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" />
<input type="submit" />
</form>
</div>
'''
html=html_head
html+=html_count
html+=form
html+=html_page
html+=html_space
html+=html_info
html+=html_pic
html+=html_space
html+=html_page
html+=html_end
return html
2.接受上传文件的代码:upload.py
这里处理在网站首页上传的图片,如果上传的是zip文件,就在内存中解压,然后将图片挨个放进storange中
# -*- coding: utf-8 -*-
import sae.storage
import web
import zipfile
from datetime import datetime
class Upload:
def POST(self):
web.header("Content-Type","text/html; charset=utf-8")
x=web.input(myfile={})
if 'myfile' in x and x.myfile.filename!='':
self.file_upload(x)
web.seeother('/')
def file_upload(self,x):
filepath=x.myfile.filename.replace('\\','/')
filename=filepath.split('/')[-1]
filename=datetime.now().strftime("%Y%m%d%H%M%S%f")+'.'+filename.split('.')[-1]#将文件名修改为当前日期,方便后面排序
if ".zip" in filename:
self.unzip_upload(x.myfile.file)
else:
st=sae.storage.Client()
ob=sae.storage.Object(x.myfile.file.read())
sturl=st.put('yesyouknow2',filename,ob)
def unzip_upload(self,zip_file):
st=sae.storage.Client()
z=zipfile.ZipFile(zip_file)
namelist=z.namelist()
for name in namelist:
file=z.read(name)
filename=datetime.now().strftime("%Y%m%d%H%M%S%f")+'.'+name.split('.')[-1]#日期加上文件后缀名
ob=sae.storage.Object(file)
st.put('yesyouknow2',filename,ob)
3.接受chrome扩展发送过来的图片链接:backupdate.py
#coding:utf-8
##接收chrome插件上传的图片链接,将图片下载存储到storage中.
import sae
import web
import urllib2
import sae.storage
from datetime import datetime
class Backupdate:
def GET(self):
web.header('Access-Control-Allow-Origin','*')
user_data=web.input(src="no_exist")
img_src=user_data.src
img_data=urllib2.urlopen(img_src).read()
filename=datetime.now().strftime("%Y%m%d%H%M%S%f")+'.'+img_src.split('.')[-1]#将文件名修改为当前日期,方便后面排序
st=sae.storage.Client()
ob=sae.storage.Object(img_data)
st.put('yesyouknow2',filename,ob)
return "ok",img_src
4.至于chrome扩展的话就更简单了,只用了一个函数用来发送当前的图片链接给yesyouknow网站.
chrome.contextMenus.create方法就是创建菜单了,点击菜单就会通过yesyouknowOnClick()来处理
//上传你喜欢的图片到yesyouknow.sinaapp.com
function yesyouknowOnClick(info,tab){
console.log("hello yesyouknow");
console.log(info.srcUrl);
xmlhttp=new XMLHttpRequest();
url="http://yesyouknow.sinaapp.com/backupdate?src=";
url+=info.srcUrl;
console.log(url)
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
}
var title_yesyouknow=chrome.contextMenus.create({"title": "上传到yesyouknow","contexts":["image"],"onclick":yesyouknowOnClick});
最后附上yesyouknow小站源码:点我
祝大家玩得开心.
发表评论
-
C#WebBrowser控件使用教程与技巧收集--苏飞收集 - sufeinet
2013-06-28 12:07 1016原帖地址:http://www.cnblogs.com/suf ... -
我要喷一个自认为很垃圾的网站架构 - 老赵【苏州】
2013-06-28 12:01 1081原帖地址:http://www.cnblogs.com/lao ... -
[翻译] Oracle Database 12c 新特性Multitenant - Cheney Shue
2013-06-28 11:43 589原帖地址:http://www.cnblogs.com/ese ... -
memcahd 命令操作详解 - 阿正-WEB
2013-06-28 11:37 430原帖地址:http://www.cnblogs.com/azh ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 552原帖地址:http://www.cnblogs.com/ste ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 524原帖地址:http://www.cnblogs.com/ste ... -
RPG游戏之组队测试 - zthua
2013-06-27 10:22 517原帖地址:http://www.cnblogs.com/zth ... -
IT人们给个建议 - SOUTHER
2013-06-26 14:06 486原帖地址:http://www.cnblogs.com/sou ... -
Java向前引用容易出错的地方 - 银河使者
2013-06-26 14:00 456原帖地址:http://www.cnblogs.com/nok ... -
使用Func<T1, T2, TResult> 委托返回匿名对象 - 灰身
2013-06-26 13:54 761原帖地址:http://www.cnblo ... -
【web前端面试题整理03】来看一点CSS相关的吧 - 叶小钗
2013-06-25 10:45 736原帖地址:http://www.cnblogs.com/yex ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 10:27 577原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 10:21 515原帖地址:http://www.cnblo ... -
CentOS下Mysql安装教程 - 小学徒V
2013-06-23 15:24 561原帖地址:http://www.cnblogs.com/xia ... -
vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) - skyme
2013-06-23 15:18 795原帖地址:http://www.cnblogs.com/sky ... -
之前专门为IE6、7开发的网站如何迁移到IE10及可能遇到的问题和相应解决方案汇总 - 海之澜
2013-06-23 15:12 901原帖地址:http://www.cnblogs.com/wuz ... -
Android学习笔记--解析XML之SAX - 承香墨影
2013-06-23 15:01 364原帖地址:http://www.cnblo ... -
SQL Server 性能优化之——T-SQL TVF和标量函数
2013-06-19 09:32 616原帖地址:http://www.cnblogs.com/Boy ... -
Nginx学习笔记(二) Nginx--connection&request
2013-06-19 09:26 605原帖地址:http://www.cnblogs.com/cod ... -
从郭美美霸气侧漏看项目管理之项目经理防身术
2013-06-19 09:20 461原帖地址:http://www.cnblogs.com/had ...
相关推荐
SAE+J1939协议资料,包含SAE+J1939-01-2000、SAE+J1939-11-1999、SAE+J1939-13-2004、SAE+J1939-15-2003、SAE+J1939-21-2001、SAE+J1939-31-2004、SAE+J1939-71-2006、SAE+J1939-73-2004、SAE+J1939-74-2004、SAE+J...
最新版SAE+J1939-21-2001英文原版规范标准
TrafficFlowPrediction(高速公路-交通流预测)(数据集+LSTM+SAE+CNN) (数据集+LSTM长短时神经网络+SAE堆栈自编码+CNN卷积神经网络) 基于CNN和LSTM的高速公路交通流预测模型 python代码
SAE+J1939-01-2000.pdf SAE+J1939-11-1999.pdf SAE+J1939-13-2004.pdf SAE+J1939-15-2003.pdf SAE+J1939-2005.pdf SAE+J1939-21-2001.pdf SAE+J1939-31-2004.pdf SAE+J1939-71-2006.pdf SAE+J1939-73-2004.pdf SAE+J...
最新版的SAE+J1939-01-2000版,是正个1939规范的总体介绍,想要对规范有全面的认识和了解,这个很有必要了解。
SAE+J1939-01-2000.pdf SAE+J1939-11-1999.pdf SAE+J1939-13-2004.pdf SAE+J1939-15-2003.pdf SAE+J1939-21-2001.pdf SAE+J1939-31-2004.pdf SAE+J1939-71-2006.pdf SAE+J1939-73-2004.pdf SAE+J1939-74-2004.pdf ...
一款运行在SAEPython上使用FLASK开发的轻型博客程
英文原版包括SAE+J1939-01-2000,SAE+J1939-11-1999,SAE+J1939-13-2004,SAE+J1939-15-2003,SAE+J1939-21-2001,SAE+J1939-31-2004,SAE+J1939-71-2006,SAE+J1939-73-2004,SAE+J1939-74-2004,SAE+J1939-75-2002...
资源分类:Python库 所属语言:Python 资源全名:sae-python-dev-1.3.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
SAE的Python博客_Python_HTML_下载
最新版SAE+J1939-13-2004英文原版规范标准
最新版SAE+J1939-75-2002英文原版规范标准
SAE+J1100V0翻译.pdf
最新版SAE+J1939-11-1999英文标准规范协议
最新版SAE+J1939-81-2003英文原版规范标准
最新版SAE+J1939-15-2003英文原版
七牛图床程序是一个可以运行在新浪SAE平台和普通PHP平台的、利用国内最优秀的七牛云存储为存储空间的免费、开源的图床系统。 当然你也可以运行于普通平台上,因为它是兼容的! 允许上传的图片类型JPG、JPEG、PNG...
SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它由“卡车与大型客车电气与电子委员会”(Track & Bus Electrical & ...
主要介绍了Python Web框架Flask中使用新浪SAE云存储实例,本文是对SAE云存储的简单封装,需要的朋友可以参考下
最新版SAE+J1939-73-2004英文原版规范标准