Flask and PostgreSQL on Heroku
来源:互联网 发布:json怎么写注释 编辑:程序博客网 时间:2024/06/08 19:25
原文链接:Flask and PostgreSQL on Heroku
Heroku
越来越成为我最喜欢的部署简单Python应用程序的平台。Heroku
实际上为你提供了一个完整管理的系统,你只需几分钟就可以部署你的应用。更不用说它的免费版(1 dyno, Postgres dev plan), 实际上给予我们的更多,让我们可以做更多事。
你可以按照Heroku
上的官网文档,它给出了如何从头开始,但是我发现它对如何设置Postgres
缺乏一些说明,所以我给出了一个快速部署简单的Python 应用的完整教程。
这篇文章所用的所有代码可在matching repository on Github.找到。
在这里,我会假设你有基本项目基础,如果没有,请参考前面提到的教程。然后我们需要为PostgreSQL 添加支持。我们使用 Flask-SQLAlchemy来做这个,它提供了连接到 Postgres DB 的所有东西,而且可以方便地使用ORM。 所以首先我们需要安装这个依赖,然后把它加到我们的 requirements.txt
。
1 $ pip install flask-sqlalchemy psycopg22 # don't forget to update requirements.txt3 $ pip freeze > requirements.txt
在继续之前,我们需要先创建一个 Postgres DB,然后我们将从免费开发计划开始,它允许最多10K行和20个并发连接:
1 $ heroku addons:add heroku-postgresql:dev2 -----> Adding heroku-postgresql:dev to some-app-name...done, v196 (free)3 Attached as HEROKU_POSTGRESQL_COLOR4 Database has been created and is available
一旦建立数据库,我们就应该推广它,然后 DATABASE_URL
环境变量将被创建:
$ heroku pg:promote HEROKU_POSTGRESQL_COLORPromoting HEROKU_POSTGRESQL_COLOR_URL to DATABASE_URL... done
现在我们可以继续前进,导入库并添加基本连接样板:
from flask.ext.sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL']db = SQLAlchemy(app)
对于此步骤,您可以选择使用Kenneth Reitz的 flask-heroku 库,它可以自动处理所有连接URLs,不仅适用于Postgres,还可用于其他服务,如redis,sentry, exceptional 和其他服务。
下一步是提交模板代码并创建DB 表:
$ git commit -a -m "added DB boilerplate"$ git push heroku master# ...$ heroku run python
一旦我们连接上Python终端,我们就可以执行:
>>> from app import db>>> db.create_all()
我们就设置好了! 从这里,我们可以开始使用SQLAlchemy代码同定义模型和创建,查询和删除目标。 下面是一些例子。我们可以通过创建一个新 User
模型开始:
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80)) email = db.Column(db.String(120), unique=True) def __init__(self, name, email): self.name = name self.email = email def __repr__(self): return '<Name %r>' % self.name
我们可以创建对象本身:
user = User('John Doe', 'john.doe@example.com')db.session.add(user)db.session.commit()
我们可以查询目标:
all_users = User.query.all()
我们也可以删除目标:
user = User('John Doe', 'john.doe@example.com')db.session.delete(user)db.session.commit()
这就是你需要知道的关于在Heroku上设置Flask + Postgres应用程序。
- Flask and PostgreSQL on Heroku
- Painlessly Deploying Data Apps with Bokeh, Flask, and Heroku
- heroku 部署flask应用
- Flask 部署 heroku
- Flask-heroku部署相关问题
- Flask、uWSGI and Nginx on Ubuntu 14.04
- deploy on heroku
- perl on heroku
- bootstrap on heroku missing
- how to build your web application on spring boot and deploy it on heroku
- Install PostgreSql and PostGIS On Ubuntu Server
- flask+heroku环境搭建(windows)
- Flask博客系统部署到Heroku
- 部署Flask App到Heroku完整过程
- 《Flask develoment》云平台heroku部署过程
- python+flask+postgresql 学习
- How to Configure and Run PostgreSQL on Solaris 10
- flask程序部署到heroku平台的过程
- idea插件报错导致不能启动的处理技巧
- Codeforces Round #306 (Div. 2) B. Preparing Olympiad (二进制枚举)
- AJAX长轮询不工作与IE浏览器(AJAX long polling not working with IE)
- 事务的四大隔离级别
- android:gravity 和 android:layout_Gravity属性
- Flask and PostgreSQL on Heroku
- 记一次面试经历
- As of ADT 14, resource fields cannot be used as switch cases.
- Maven中央存储库(四)
- PHPCMS v9 wap模块 SQL注入
- 工程管理器
- 如何从Maven远程存储库下载?(五)
- 2017.4第二第三轮GDOI模拟总结
- PHPcms9.6.0 最新版任意文件上传漏洞(直接getshell)