我已经使用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的位置以及它们的内容应该是什么? / p>
https://devcenter.heroku.com/articles/getting-started-with-django
我必须安装virtualenv吗?是的我应该在哪里运行此命令(在哪个文件夹中) 我想我不必为django安装django或任何数据库api或驱动程序?因为它们都已安装
答案 0 :(得分: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
这样的mysql插件
但是我的建议是将endgres端到端地使用,因为它已经融入了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文件中的所有包。
pip freeze> requirements.txt
使用Procfile
声明进程类型procfile用于在生产时启动dyno。我总是这样对..
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