一步步在SAE 部署自己的python项目
2016-06-02 14:36
357 查看
2016-10-19
推荐 Heroku.com!现在用免费的 Heroku空间,简单好用,而且可以一直用,免费!国内访问速度也不慢。Gunicorn+Postgres,稳定!
一些小限制:
数据库条目<10000,一般也够了。也可以column用json来组合,压缩
网站无访问30分钟后会休眠,再次第一次访问会重启进程(10秒钟),以后就很快了,没有延迟
每个月上线时间540小时,平均一天18小时,也够用了
如何部署Heroku:http://blog.csdn.net/kevin_qq/article/details/52839671
可以试试我的小站 - 天涯VIP:http://tianya.heroku.com
2016-6-6
SAE免费几天后就要收费了,每天mysql也要云豆,第三方库很多用不起来,比如BeautifulSoup,老说少 lxml。调试也烦恼,很多应用(比如Weixin),必须上线调试,本地调试还不行。
因此,还是转为自己搭主机方便,反正家里也是包月网络,笔记本24小时开机,装个花生壳内网映射(6元RMB),外网就能访问了,自己随便用什么数据库、什么python库都随意安装,本地调试就相当于上线调试,哈哈~~
新的网站: englishgo.imwork.net=====================================================
注册SAE
http://sae.sina.com.cn/我的应用 EnglishGo
Git 管理源代码
在你应用的git代码目录里,添加一个新的git远程仓库 sae$ git remote add sae https://git.sinacloud.com/englishgo
编辑代码并将代码部署到 `sae` 的版本1。
$ git add .
$ git commit -am "make it better"
$ git push sae master:1
或者本地没有,需要clone下来:
$ git clone https://git.sinacloud.com/englishgo
$ cd englishgo
$ git branch#
*1
$ git remote # origin
$ git pull origin 1# Already
up-to-date.
### make your changes here, git add,
git commit
$ git push origin 1
MySQL数据库
mysql作为一种最常用的存取服务了,那么在sae python环境下怎么操作mysql呢。我们也采用上面的方式,用一个实例来操作创建在sae 上的数据。首先我们需要知道我们的mysql的连接主机,端口,等等信息,那么在sae python的环境下我们需要手工引入sae的相关常量信息:import sae.const
SAE是支持MySQLdb的,那么在得到了数据库的连接信息之后我们就可以管理我们的数据库了
SAE 控制台 -> Python应用 -> 共享MySQL -> 管理Mysql -> 在phpmyadmin中 SQL -> 创建一个简单的表:
CREATE TABLE IF NOT EXISTS `entries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`text` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
本地开发环境
直接使用 pip 或者 easy_install 安装 sae-python-dev 包本地安装MySQLdb: conda install mysql-python
进入应用的本地开发目录,也就是index.wsgi和config.yaml所在的目录。运行如下的命令启动测试server:
python c:\git\sae-python-dev-guide\dev_server\dev_server.py
MySQLdb 中文乱码的处理:
conn = MySQLdb.connect(host='localhost',user='root',passwd='XXX',db='app_englishgo', charset = 'utf8')
显示:title.encode('gbk')
接收输入:unicode(request.form['title'])
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 【CF应用开发大赛】微博社交简历
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- install and upgrade scrapy
- source命令执行SQL脚本文件
- Scrapy的架构介绍
- Centos6 编译安装Python
- 如何使用 Flask 编写 Python Web API
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独