当前位置: 首页 > 知识库问答 >
问题:

没有使用Django的Python数据库(对于Heroku)

东方英豪
2023-03-14

令我惊讶的是,我还没有发现其他地方问过这个问题。简而言之,我正在写一个应用程序,我计划部署到云(可能使用Heroku),它将进行各种网络抓取和数据采集。它将在云中的原因是,这样我就可以将它设置为每天独立运行,并在我的计算机不开机的情况下将数据拉至其数据库,同时团队的其他成员也可以访问数据。

我曾经使用AWS的SimpleDB和DynamoDB,但是我发现SDB的存储限制很小,DDB糟糕的查询能力是个问题,所以我正在寻找一个可以存储任意长度的数据库系统(SQL或非关系型数据库)值(理想情况下是任意数据结构),并且可以在任何字段上查询。

我已经为Heroku找到了许多数据库解决方案,比如ClearDB,但是我看到的所有信息都显示了如何设置Django来访问数据库。因为这是一个脚本,而不是一个网站,如果没有必要,我真的不愿意深入Django。

在Heroku中,有没有什么数据库可以不用Django用Python连接到?

共有3个答案

齐成和
2023-03-14

我最近用烧瓶做的。(https://github.com/HexIce/flask-heroku-sqlalchemy).

这里有几个问题:

1.如果您不使用Django,您可能需要通过以下方式自行设置数据库:

heroku addons:add shared-database

(或者你想使用哪个数据库,其他的都要花钱。)

2.数据库URL存储在“database_URL”环境变量的Heroku中。在python中,您可以通过执行以下操作来获得它。

dburl = os.environ['DATABASE_URL']

如何从那里连接到数据库取决于您,其中一个选项是SQLAlChemy。

廖琨
2023-03-14

我会用MongoDB。Heroku支持它,所以我认为它真的很容易启动和横向扩展:https://addons.heroku.com/mongohq

关于Python:MongoDB是一个非常简单的数据库。该模式非常灵活,非常适合Python字典。这真是件好事。

你可以用PyMongo

from pymongo import Connection
connection = Connection()

# Get your DB
db = connection.my_database

# Get your collection
cars = db.cars

# Create some objects
import datetime
car = {"brand": "Ford",
       "model": "Mustang",
       "date": datetime.datetime.utcnow()}

# Insert it
cars.insert(car)

很简单,嗯?

希望有帮助。

编辑:

正如内噬菌体所提到的,与Mongo接口的另一个好选择是mongoengine。如果你有很多数据要存储,你应该看看。

傅博容
2023-03-14

您可以获得Heroku提供的数据库,而无需您的应用程序使用Django。为此:

heroku addons:add heroku-postgresql:dev

如果您需要一个更大更专用的数据库,您可以查看Heroku Postgres的计划

在你的要求之内。您将要添加的txt:

psycopg2

然后,您可以与它连接/交互类似于以下内容:

import psycopg2
import os
import urlparse

urlparse.uses_netloc.append('postgres')
url = urlparse.urlparse(os.environ['DATABASE_URL'])

conn = psycopg2.connect("dbname=%s user=%s password=%s host=%s " % (url.path[1:], url.username, url.password, url.hostname))
cur = conn.cursor()

query = "SELECT ...."
cur.execute(query)
 类似资料:
  • 问题内容: 我有现有的数据库,该数据库正在与另一个具有python和sqlalchemy的应用程序一起使用。现在,我想构建REST API端点,因为我必须围绕当前代码构建包装器。 我想使用Django,我对此毫不怀疑 我可以将相同的数据库用于Django相关表,以便我的其他表也在那里并且某些django生成的表也位于同一数据库中吗? 我想将我的应用程序从sqlachemy慢慢转移到django O

  • 问题内容: 是否可以在不设置数据库的情况下编写Django单元测试?我想测试不需要设置数据库的业务逻辑。尽管设置数据库的速度很快,但在某些情况下我真的不需要它。 问题答案: 你可以继承DjangoTestSuiteRunner的子类,并覆盖setup_databases和teardown_databases方法以进行传递。 创建一个新的设置文件,并将TEST_RUNNER设置为刚创建的新类。然后,

  • redis不是有16个数据库吗? django默认配置使用的是索引为0的数据库。 django如何配置多个redis数据库,例如需要使用redis的0和2数据库? 在视图层应该如何选择不同的redis数据库使用?

  • 问题内容: 我已经在Django中创建了一个不错的数据库,并且希望通过网站内容之外的一些python脚本进行交互,因此我很好奇是否可以在Django之外使用Django数据库API网站,如果有的话,有没有人知道如何实现此目的?Google并没有为此带来很多成功。 问题答案: 在进行任何调用(包括导入模型)之前,你只需要配置Django设置即可。像这样: 同样,请确保在运行之前运行该代码,例如: 然

  • 本文向大家介绍Django数据库类库MySQLdb使用详解,包括了Django数据库类库MySQLdb使用详解的使用技巧和注意事项,需要的朋友参考一下 Django项目要操作数据库,首先要和数据库建立连接,才能让程序中的数据和数据库关联起来进行数据的增删改查操作 Django项目默认使用mysqldb模块进行和mysql数据库之间的交互操作。 下面看下Django进行数据库操作的步骤: 1. 修改

  • 基本上,我想根据ID更改状态。没有错误,但它没有更新。 index.php booking.php