2

我已经用 Python Django 开发了一个应用程序并且它正在工作,我是 Python Django 的新手,现在我需要将它部署在 heroku 服务器上,有很多博客和网站,包括 heroku 网站,它们解释了从头开始在 heroku 上部署一个 django 应用程序我还没有找到任何关于正在运行的应用程序的内容

例如,他们都需要安装 django,这让我感到困惑,

这是我的应用程序的文件夹结构:

 myapp
 |_my_app
 | |_Settingd.py
 | |_urls.py
 | |_wsgi.py
 |__webapp
    |_statics(folder) 
    |_admin.py
    |_models.py
    |_views.py

该应用程序正在本地连接到 mysql 服务器

问题):

现在我完全糊涂了,我该如何在heroku上部署我正在运行的应用程序?在下面提供的在 heroku 上部署应用程序的步骤中,哪些对我是强制性的,哪些我可以逃脱,根据我的文件夹结构,requirements.txt 或 Procfile 的位置应该在哪里,它们的内容应该是什么?

https://devcenter.heroku.com/articles/getting-started-with-django

我必须安装virtualenv吗?是的,我应该在哪里运行这个命令(在哪个文件夹中)我想我不必为 django 安装 django 或任何数据库 api 或驱动程序?因为它们都已经安装了

4

1 回答 1

2

所以你的第一个问题是为什么应用程序应该在 Virtualenv 中运行?

第一步是什么?安装 Django,对吧?不完全的。将包直接安装到当前站点包区域的一个常见问题是,如果您有多个项目或在您的机器上使用 Python 来处理 Django 以外的其他东西,您可能会遇到应用程序和已安装包之间的依赖关系问题。出于这个原因,我们将使用virtualenv来管理我们的Django installation. 这在 Python 和 Django 用户中很常见,也是推荐的做法。

然后使用此命令安装并激活您的 virtualenv...

$ virtualenv env

$ source env/bin/activate

最后我们激活了环境。现在它看起来像这样

(env)rs@rajasimon-desktop:~/studio/Project$

那么我猜你的第二个疑问是安装 django-toolbelt 的目的是什么?

如果您正在安装 django-toolbelt,它将安装所有需要的依赖项或包。

它包含 Django、psycopg2、gunicorn、dj-database-url、dj-static、static

首先 Heroku 原生使用 postgres。如果您在本地使用它,您的生活会更轻松。

如果你真的想使用 mysql,你有两条路可以走。

1) 在本地运行 mysql,但在使用 mysql2psql gem 迁移到 Heroku 时转换为 postgres,如下所述:https ://devcenter.heroku.com/articles/heroku-mysql

2)使用像https://addons.heroku.com/cleardb这样的 mysql 插件

但是我的建议是端到端使用 postgres,因为它已融入 Heroku,您将使用默认的 Heroku 使用方式,而不是反对

这是我正在工作的项目包

(env)ri@rajasimon-desktop:~/studio/project$ pip freeze
Django==1.6.5
MySQL-python==1.2.5
Pillow==2.5.3
argparse==1.2.1
django-ckeditor-updated==4.2.8
wsgiref==0.1.2

requirements.txt 和 Procfile 的位置应该在哪里?

如何制作 requirements.txt 文件

通过运行以下命令将自动包含 txt 文件中的所有包。

点冻结> requirements.txt

使用 Procfile 声明进程类型

procfile 用于在生产时启动测功机。我总是这样。。

web: gunicorn project.wsgi

所以最后你的项目结构看起来像这样

myapp
 |_my_app
 | |_Settingd.py
 | |_urls.py
 | |_wsgi.py
 |__webapp
 |   |_statics(folder) 
 |   |_admin.py
 |   |_models.py
 |   |_views.py
 |__manage.py
 |__requirements.txt
 |__Procfile
于 2014-08-26T05:47:56.037 回答