Heroku 与 Django 的结合使用
Usage of Heroku with Django
我目前正在学习 Django 并且对它有了一定的了解。我知道您可以使用 python manage.py 运行server 启动服务器。但随后还有 heroku ps:scale web=1 后跟 heroku open 以在您在主机 herokuapp.com 上选择的子域中打开网页。使用 heroku 与 运行server 相比有什么意义?当需要部署到生产环境时,heroku 的用途是什么? heroku 到底是用来做什么的,原因是什么?在创建专业的 django web site/application 时,heroku 是必需的还是非常有用?如果是,为什么?我真的不明白使用 heroku 的原因。我很好奇 django 的最佳实践是什么,以及它们是否包括使用或不使用 heroku。
除了 heroku 问题之外,django 在设置域名等方面的最佳做法是什么(herokuapp.com 子域名除外)以及其他 components/software 解决方案值得与 django 一起使用吗?
我正在做的事情之一是网站上的 FTP 门户,人们可以登录并上传文件。 django 是否有 plugins/python 模块来做这样的事情,还是必须定制?这让我想到了我的最后一个问题,django 提供了什么样的 addons/modules 来避免在实现 django website/app 的某些功能时重新发明轮子?
我关注的教程:http://tutorial.djangogirls.org/en/django_orm/README.html
帮助我掌握了 django,但我对它的更高级部分感到好奇。比如自定义模块,自定义样式,自定义脚本(不管是js还是严格意义上的python)。
如果有人能指出我正确的方向或提供任何建议,我将不胜感激。本教程让我使用模块:dj-database-url、whitenoise、gunicorn、python-dateutil、psycopg2、requests。我知道其中一些是做什么的,但是 psycopg2、whitenoise、dateutil 和 dj-database、url 的目的是什么?还有其他值得使用的模块吗?
对不起,问题太多了,但我正在尽我所能去理解 django,这样我就可以在组合 django 项目时做出正确的评估。
提前致谢。
编辑,最后的问题:
1) 另外,当我使用 heroku 时,他们给了我一个位于 herokuapps.com 的子域,我可以设置自己的 URL 并仍然使用 heroku 吗?
2) 最后但并非最不重要的一点是,heroku 让您注册并在 herokuapp.com 上为您提供一个子域。有没有一种方法可以将 heroku 与您自己的域而不是他们给您的域一起使用?有具体的方法吗?
编辑 2:
当我做 运行server 它工作正常,但是当我 运行 它与 heroku ps:scale web=1 然后 heroku 打开它打开但只显示标题页面顶部,没有内容。不确定为什么会这样。有人可以解释 运行server 和 heroku ps:scale web=1 后跟 heroku open 之间的区别吗?
psycopg2 用于在您的应用程序中使用 postgresql。如果使用 gunicorn,白噪声允许您在没有 nginx 的情况下提供静态文件。 Requests 是一个易于使用的 urllib2 库,带有 pythonic 调用以与来自其他网站的 api 一起工作。
如果你想用 facebook 登录做一些测试,Heroku 是一个很好的去处,特别是如果你需要 url 本地主机之外的地方。
我的建议是你读两勺 Django http://twoscoopspress.org/products/two-scoops-of-django-1-6
它介绍了很多最佳实践,并在投票后作为一个很好的教程。我还建议将 django-bower 合并到您的项目中。我会列出一些要添加的重要内容。
Django Bower:https://github.com/nvbn/django-bower - 帮助组织静态文件
Crispy Forms : https://github.com/maraujop/django-crispy-forms - 很棒的表单渲染,非常适合 bootstrap
Django Rest 框架:https://github.com/tomchristie/django-rest-framework - REST API
这些只是开始,还有很多东西需要学习。
python manage.py runserver
仅用于开发。切勿在生产中使用它。
- Heroku 让部署 Django 代码变得超级容易。您只需要一些配置和
git push heroku master
。但这不是部署代码的唯一方法。您还可以使用 Nginx 等网络服务器、作为 WSGI 服务器的 Gunicorn 以及您选择的数据库来设置服务器。要进行设置,您需要了解一些有关 Linux 和命令行的知识。
- 因此,如果您不知道如何设置服务器,Heroku 会非常有用。
- Heroku supports custom domains,设置起来也很简单。
- 正如 Mikeec3 所提到的,"Two Scoops of Django" 是一本非常好的读物。
- 如果您正在寻找 django 包,www.djangopackages.com 是一个不错的起点。
我目前正在学习 Django 并且对它有了一定的了解。我知道您可以使用 python manage.py 运行server 启动服务器。但随后还有 heroku ps:scale web=1 后跟 heroku open 以在您在主机 herokuapp.com 上选择的子域中打开网页。使用 heroku 与 运行server 相比有什么意义?当需要部署到生产环境时,heroku 的用途是什么? heroku 到底是用来做什么的,原因是什么?在创建专业的 django web site/application 时,heroku 是必需的还是非常有用?如果是,为什么?我真的不明白使用 heroku 的原因。我很好奇 django 的最佳实践是什么,以及它们是否包括使用或不使用 heroku。
除了 heroku 问题之外,django 在设置域名等方面的最佳做法是什么(herokuapp.com 子域名除外)以及其他 components/software 解决方案值得与 django 一起使用吗?
我正在做的事情之一是网站上的 FTP 门户,人们可以登录并上传文件。 django 是否有 plugins/python 模块来做这样的事情,还是必须定制?这让我想到了我的最后一个问题,django 提供了什么样的 addons/modules 来避免在实现 django website/app 的某些功能时重新发明轮子?
我关注的教程:http://tutorial.djangogirls.org/en/django_orm/README.html
帮助我掌握了 django,但我对它的更高级部分感到好奇。比如自定义模块,自定义样式,自定义脚本(不管是js还是严格意义上的python)。
如果有人能指出我正确的方向或提供任何建议,我将不胜感激。本教程让我使用模块:dj-database-url、whitenoise、gunicorn、python-dateutil、psycopg2、requests。我知道其中一些是做什么的,但是 psycopg2、whitenoise、dateutil 和 dj-database、url 的目的是什么?还有其他值得使用的模块吗?
对不起,问题太多了,但我正在尽我所能去理解 django,这样我就可以在组合 django 项目时做出正确的评估。
提前致谢。
编辑,最后的问题:
1) 另外,当我使用 heroku 时,他们给了我一个位于 herokuapps.com 的子域,我可以设置自己的 URL 并仍然使用 heroku 吗?
2) 最后但并非最不重要的一点是,heroku 让您注册并在 herokuapp.com 上为您提供一个子域。有没有一种方法可以将 heroku 与您自己的域而不是他们给您的域一起使用?有具体的方法吗?
编辑 2:
当我做 运行server 它工作正常,但是当我 运行 它与 heroku ps:scale web=1 然后 heroku 打开它打开但只显示标题页面顶部,没有内容。不确定为什么会这样。有人可以解释 运行server 和 heroku ps:scale web=1 后跟 heroku open 之间的区别吗?
psycopg2 用于在您的应用程序中使用 postgresql。如果使用 gunicorn,白噪声允许您在没有 nginx 的情况下提供静态文件。 Requests 是一个易于使用的 urllib2 库,带有 pythonic 调用以与来自其他网站的 api 一起工作。
如果你想用 facebook 登录做一些测试,Heroku 是一个很好的去处,特别是如果你需要 url 本地主机之外的地方。
我的建议是你读两勺 Django http://twoscoopspress.org/products/two-scoops-of-django-1-6
它介绍了很多最佳实践,并在投票后作为一个很好的教程。我还建议将 django-bower 合并到您的项目中。我会列出一些要添加的重要内容。
Django Bower:https://github.com/nvbn/django-bower - 帮助组织静态文件
Crispy Forms : https://github.com/maraujop/django-crispy-forms - 很棒的表单渲染,非常适合 bootstrap
Django Rest 框架:https://github.com/tomchristie/django-rest-framework - REST API
这些只是开始,还有很多东西需要学习。
python manage.py runserver
仅用于开发。切勿在生产中使用它。- Heroku 让部署 Django 代码变得超级容易。您只需要一些配置和
git push heroku master
。但这不是部署代码的唯一方法。您还可以使用 Nginx 等网络服务器、作为 WSGI 服务器的 Gunicorn 以及您选择的数据库来设置服务器。要进行设置,您需要了解一些有关 Linux 和命令行的知识。 - 因此,如果您不知道如何设置服务器,Heroku 会非常有用。
- Heroku supports custom domains,设置起来也很简单。
- 正如 Mikeec3 所提到的,"Two Scoops of Django" 是一本非常好的读物。
- 如果您正在寻找 django 包,www.djangopackages.com 是一个不错的起点。