我将概述我的工作流程,并希望获得一些关于如何提高其效率的建议。现在看起来有点麻烦和重复(我讨厌这一点),所以我正在寻找一些改进。请记住,我对 django 及其工作原理仍然很陌生,但我是一个非常流利的编码器(恕我直言)。所以这里...
工具(我每天都使用这些工具,所以我不倾向于更换):
- Mac OSX Leopard
- 文本伴侣
- 带有选项卡的终端
- 必然
假设
- Django 基础知识(有教程/购买了书籍)
- Python Fluent(运行 2.6,支持 IDLE)
- 启动我的第一个应用程序来处理 models.py
开始
- 创建一个 TextMate 项目,其中包含整个 django 树。
TextMate Project http://img.skitch.com/20090821-g48cpt38pyfwk4u95mf4gk1m7d.jpg
在终端的第一个选项卡中启动服务器
python ./manage.py runserver
在终端窗口的第二个选项卡中启动 shell
python ./manage.py shell
这会生成 iPython,让我开始开发工作流程
工作流程
创建并构建一个名为 models.py 的基本模型
构建基本模型
class P4Change(models.Model):
"""This simply expands out 'p4 describe' """
change = models.IntegerField(primary_key=True)
client = models.ForeignKey(P4Client)
user = models.ForeignKey(P4User)
files = models.ManyToManyField(P4Document)
desc = models.TextField()
status = models.CharField(max_length=128)
time = models.DateField(auto_now_add=True)
def __unicode__(self):
return str(self.change)
admin.site.register(P4Change)
- 在第一个终端(正在运行的服务器)中停止它^C并syncdb启动服务器
> python ./manage.py syncdb
Creating table perforce_p4change
Installing index for perforce.P4Change model
- 在 shell 终端窗口中加载它..
> python ./manage.py shell
Python 2.6.2 (r262:71600, Apr 23 2009, 14:22:01)
Type "copyright", "credits" or "license" for more information.
IPython 0.10 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: from perforce.models import *
In [2]: c = P4Client.objects.get_or_create("nellie")
- 它是否破坏了是/否,如果它不起作用,则执行以下操作:
- 停止 shell
- 清除数据库
- 重建数据库
- 修复代码
- 重新加载 shell
- 重新加载模块
- 祈祷...
问题/评论/想法
- 是我的问题还是这看起来效率很低?
- 看起来我应该能够重新加载(模块),但我不知道如何做到这一点......有人吗?
- 看起来我应该能够在 TextMate 中测试这个?有人吗??
- 即使只是离开外壳,我也必须确认我想离开..
这样做的目的是让你们所有的天才向我展示一种更高效的工作方式。我完全愿意接受合理的建议。我不倾向于更换工具,但我愿意接受批评。
最佳答案
首先,在模型就位之前无需执行./manage.py runserver
。
第二,清除数据库/重建数据库应该在修复代码后完成,可以通过 ./manage.py reset perforce
一次性完成
第三,每次在 shell 中输入的内容(导入模型、尝试创建对象)应该写在测试套件中。然后你可以执行 ./manage.py test perforce
而不是启动 shell 并再次输入。实际上,如果您使用测试套件,则不需要,因为它每次都会创建一个干净的虚拟数据库,并在完成后为您分解它。
第四,尝试“观察测试是否通过”,而不是“祈祷...”。
关于Django - Mac OSX 工作流程 - 有关高效开发方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313737/