高效的webapp开发

时间:2012-06-25 17:04:35

标签: django workflow

效率不高:)。

我正在尝试通过构建一个简单的应用程序来学习django。我在webfaction上购买了一个托管计划,在我的Windows机器上设置了github帐户和一个putty。我正在我的Windows上编写“代码”,将其推送到github repo,然后通过putty连接到我的webfaction帐户以从github获取。

这是一个非常乏味和乏味的过程,我不禁想知道我做错了什么。即使修复一个简单的拼写错误也需要花费很多时间。开发人员是否使用vim编写服务器端的所有内容?这听起来更不鼓舞人心。我可以做些什么来改善我的工作流程吗?如何由专业人士完成?

2 个答案:

答案 0 :(得分:2)

总结Kit Sunde的答案:在实际部署站点之前,不应该部署到服务器。使用manage.py runserver和本地数据库在本地完成正常的开发和测试。这在Windows上运行良好。

答案 1 :(得分:1)

如果您正在编辑服务器上的代码,则需要停止浪费自己的时间。有很多原因导致您不应该部署代码,最重要的是您会浪费时间,而且重要的是您在用户查看网站时会破坏代码。

在本地设置开发服务器,这就是django manage.py runserver exists的原因。如果由于某种原因无法在Windows上运行它,那么在虚拟机中安装服务器,将文件夹挂载到代码所在的窗口中并运行它(这是我们为设计人员所做的,尽管我们有很多依赖项)。

有IDE可以让你通过一个你可能觉得更舒服的GUI来运行Django,我使用PyCharm并且我听到了关于的好消息。

如果您了解了fabric的工作方式,那么您可以节省时间,这样您就可以自动完成部署过程。我不确定面料在窗户上的效果如何,但我确信你可以使用或类似物来使其正常工作。

一个相当基本的例子就是这个:

from fabric.api import *

env.hosts = ['ubuntu@example.org']

def deploy():
    pid_file = "~/myproject/process.pid"
    with cd('~/myproject/'):
        run('git pull')
        run('src/city_nomads/manage.py collectstatic --noinput')
        # If the process isn't up we don't want the thing to exit.
        with settings(warn_only=True):
            run("cat {} | xargs kill -TERM".format(pid_file))
        run("src/myproject/manage.py runfcgi "
                "method=threaded "
                "host=127.0.0.1 "
                "port=8000 "
                "pidfile={} "
                "--settings=myproject.settings_release".format(pid_file))

它将SSH进入我的服务器,拉动源,collectstatic,杀死进程,如果它在那里然后运行django作为fastcgi。我假设你已经设置了来连接到端口8000上的Django。