rh0*_*ium 5 django macos workflow textmate
我将概述我的工作流程,我想就如何提高效率提出一些建议.现在看起来有点麻烦和重复(我讨厌的东西),所以我正在寻找一些改进.请记住,我仍然是django的新手以及它是如何工作的但我是一个非常流利的编码器(恕我直言).所以这里......
TextMate项目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)
Run Code Online (Sandbox Code Playgroud)
> python ./manage.py syncdb
Creating table perforce_p4change
Installing index for perforce.P4Change model
Run Code Online (Sandbox Code Playgroud)
> 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")
Run Code Online (Sandbox Code Playgroud)
对于你们所有的天才来说,重点在于向我展示一种更有效的工作方式.我完全乐于接受合理的建议.我并不倾向于转移工具,但我愿意接受批评.
感谢所有阅读本文并正在寻找更好方法的人。我认为单元测试绝对是更简单的方法。
\n\n因此,根据文档,您只需创建一个与 models.py 并行的文件tests.py 并将测试放入其中。
\n\nfrom django.test import TestCase\nfrom perforce.models import P4User, P4Client\n\nclass ModelTests(TestCase):\n def setUp(self):\n self.p4 = P4.P4()\n self.p4.connect()\n\n def test_BasicP4(self):\n """\n Make sure we are running 2009.1 == 65\n """\n self.failUnlessEqual(self.p4.api_level, 65)\n\n def test_P4User_get_or_retrieve(self):\n """\n This will simply verify we can get a user and push it into the model\n """\n user = self.p4.run(("users"))[0]\n dbuser = P4User.objects.get_or_retrieve(user.get(\'User\'))\n\n # Did it get loaded into the db?\n self.assertEqual(dbuser[1], True)\n\n # Do it again but hey it already exists..\n dbuser = P4User.objects.get_or_retrieve(user.get(\'User\'))\n # Did it get loaded into the db?\n self.assertEqual(dbuser[1], False)\n\n # Verify one field of the data matches\n dbuser = dbuser[0]\n self.assertEqual(dbuser.email, user.get("Email"))\nRun Code Online (Sandbox Code Playgroud)\n\n现在您可以简单地启动终端并执行 python manage.py 测试,这将运行测试,但同样,这也是一个相当有限的视图,并且仍然需要您换入/换出程序。所以这就是您执行此操作的方法使用 \xe2\x8c\x98R 直接从 Textmate 获取。
\n\n在顶部添加一条导入行,在底部添加几行。
\n\nfrom django.test.simple import run_tests\n#\n# Unit tests from above\n#\nif __name__ == \'__main__\':\n run_tests(None, verbosity=1, interactive=False)\nRun Code Online (Sandbox Code Playgroud)\n\n现在 \xe2\x8c\x98R 将直接从 TextMate 运行。
\n