Проверьте небольшие фрагменты кода Django - PullRequest
0 голосов
/ 25 ноября 2010

Я все еще на стадии разработки приложения Django. Прежде чем написать свои views.py, я проверил их, чтобы убедиться, что мои модели определены правильно. Это я делаю это в терминале, вызывая

python manage.py shell

Но о, так часто я делаю какую-то синтаксическую ошибку, побуждающую меня прервать оболочку ctrl-D и перепечатать все Этот процесс занимает вечность. Было бы лучше, если бы я мог написать все это в каком-то файле только для испытаний и, если все хорошо, скопировать его в views.py.

Какой процесс для этого? Это так же просто, как создать trial.py в моем каталоге приложения. Не придется ли мне импортировать Django env? Какой лучший способ сделать это?

Ответы [ 6 ]

5 голосов
/ 25 ноября 2010

Как насчет написания юнит-тестов?Вы можете выполнить их легко с помощью одной команды.Вы, вероятно, можете начать с чтения руководства по django по тестированию

2 голосов
/ 25 ноября 2010

Во что бы то ни стало создайте файл trial.py для простого эксперимента, затем, выполнив

python manage.py shell

, вы можете сделать

>>> import trial

и затем вызвать пробный код прямо изнапример,

trial.myfunc()

Если вам нужно что-то изменить, вы можете просто сохранить измененный файл trial.py и выполнить

reload(trial)

Конечно, вам может понадобиться воссоздать любые существующие объекты винтерактивный сеанс, чтобы использовать ваши изменения.

Это следует рассматривать как дополнение к написанию модульных тестов (согласно ответу Яни), но я считаю этот подход полезным для опробования с использованием итеративного уточнения.

1 голос
/ 25 ноября 2010
1 голос
/ 25 ноября 2010

В более простых случаях вы можете использовать django-extensions надстройку, которая содержит shell_plus команду управления, аналогичную стандартной команде shell, но с предварительной загрузкой всех моделей.

1 голос
/ 25 ноября 2010

Создайте свой файл для тестов в каталоге проекта Django и добавьте путь к вашему проекту в переменную env:

import sys
sys.path.append(os.path.realpath(os.path.dirname(__file__)))

После этого вы сможете импортировать любой модуль из проекта (например, модели из models.py или просто функции из views.py) и использовать вашу любимую среду IDE с ее редактором и оболочкой.

0 голосов
/ 26 ноября 2010

У меня тоже раньше была эта проблема,

может быть, вы могли бы установить ipython, у которого есть волшебная функция, которая называется так:

% сохранить.

Это сохранит то, что вы вводите в файл.

и ipython - это очень очаровательный инструмент, который отлично подходит для обычного приглашения Python. У него также есть и другие замечательные вещи!

А в django, если у вас установлен ipython, при вводе оболочки python manage.py,

будет вызывать ipython напрямую.

...