Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Heroku服务器上部署就绪的Django应用程序_Django_Heroku_Django Deployment - Fatal编程技术网

在Heroku服务器上部署就绪的Django应用程序

在Heroku服务器上部署就绪的Django应用程序,django,heroku,django-deployment,Django,Heroku,Django Deployment,我已经用PythonDjango开发了一个应用程序,它正在运行,我是PythonDjango新手,现在我需要在heroku服务器上部署它,有很多博客和网站,包括heroku站点,解释了如何从头开始在heroku上部署Django应用程序,我还没有找到任何关于运行应用程序的内容 例如,他们都需要安装django,这让我感到困惑 这是我的应用程序的文件夹结构: myapp |_my_app | |_Settingd.py | |_urls.py | |_wsgi.py |__webapp

我已经用PythonDjango开发了一个应用程序,它正在运行,我是PythonDjango新手,现在我需要在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的位置应该在哪里,它们的内容应该是什么

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

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

第一步是什么?安装Django,对吗?不完全是。将软件包直接安装到当前站点软件包区域的一个常见问题是,如果您的计算机上有多个项目或使用Python进行Django以外的工作,那么您的应用程序和安装的软件包之间可能会遇到依赖性问题。因此,我们将使用
virtualenv
来管理
Django安装
。这在Python和Django用户中很常见,也是推荐的做法

然后使用以下命令安装并激活您的virtualenv

$ virtualenv env

$ source env/bin/activate
最后我们激活了环境。现在看起来像这样

(env)rs@rajasimon-desktop:~/studio/Project$
myapp
 |_my_app
 | |_Settingd.py
 | |_urls.py
 | |_wsgi.py
 |__webapp
 |   |_statics(folder) 
 |   |_admin.py
 |   |_models.py
 |   |_views.py
 |__manage.py
 |__requirements.txt
 |__Procfile
那么我猜你的第二个疑问是安装django toolbelt的目的是什么

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

它包含Django、psycopg2、gunicorn、dj数据库url、dj static、static

首先,Heroku在本地使用postgres。如果你在当地使用,生活会更轻松

如果你真的想使用mysql,你有两条路要走

1) 在本地运行mysql,但在使用mysql2psql gem迁移到Heroku时转换为postgres,如下所述:

2) 使用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文件中的所有包

pip freeze>requirements.txt

用Procfile声明进程类型

procfile用于在productioin中启动dyno。我总是这样对的

web: gunicorn project.wsgi
最后,您的项目结构将如下所示

(env)rs@rajasimon-desktop:~/studio/Project$
myapp
 |_my_app
 | |_Settingd.py
 | |_urls.py
 | |_wsgi.py
 |__webapp
 |   |_statics(folder) 
 |   |_admin.py
 |   |_models.py
 |   |_views.py
 |__manage.py
 |__requirements.txt
 |__Procfile

@rajasimon也许我和其他初学者的答案对你来说并不那么明显,所以如果你投了反对票,请给出一个信息丰富的答案,因为你实际上链接到了页面,上面有你问题的确切答案。只需按照那里的说明操作即可。@DanielRoseman我认为该文档对于初学者来说并不清楚,尤其是当您尝试在windows机器上按照页面操作时,所以让我们重新表述一下,如果我在运行的Django应用程序的根目录中定义Procfile和要求,我还需要virtualenv吗?我真的不知道那是什么for@Siavosh文档中清楚地说,
在Virtualenv中启动一个Django应用程序
,如果您正在按照教程进行操作<代码>pip安装django工具带。我想你在这里弄不明白为什么它会再次安装django?@Siavosh你不需要Heroku上的
virtualenv
。Heroku只需要git中的项目以及
requirements.txt
文件,该文件应列出所有项目依赖项,包括Django。换句话说,Heroku是一个
virtualenv
,您将使用git部署应用程序。您需要
toolbelt
使用命令行连接到Heroku。要使用MySQL数据库,您需要获得任何附加组件,如
clearDB MySQL
,一旦添加了附加组件,Heroku就会设置一些环境变量,这些变量可以使用教程中提到的
dj_database_url
读取。