Доступны автоматизированные леса джанго [дубликат]

У меня есть другая перспектива ответить на это.

При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.

public class MyController
{
    private ServiceA serviceA;
    private ServiceB serviceB;

    public MyController(ServiceA serviceA, ServiceB serviceB)
    {
        this.serviceA = serviceA;
        this.serviceB = serviceB;
    }

    public void MyMethod()
    {
        // We don't need to check null because the dependency injection container 
        // injects it, provided you took care of bootstrapping it.
        var someObject = serviceA.DoThis();
    }
}
25
задан Paul D. Waite 23 March 2011 в 16:31
поделиться

6 ответов

Я посмотрел и еще не нашел что-то для Django, как команда Rails Generate. У Django есть немного другая философия. Это дает вам инструменты, позволяющие делать вещи легко, но на самом деле не делает это за вас (кроме интерфейса администратора). По большому счету, я думаю, что все в порядке. Когда я использую строительные леса для рельсов, я не могу часто сохранять большую часть автогенерированных материалов. Когда я это сделаю, интерфейс администратора django, вероятно, также сработал бы и дал бы мне больше функциональности.

Вместо этого я предлагаю читать через шаг 4 учебника по Django , который вводит общие а затем глава 7 книги Джанго , в которой представлены формы. Вы должны быть терпеливыми в главе 7, потому что авторы думают, что вы хотите узнать мельчайшие детали о трудном пути, прежде чем они научат вас легкому пути. (попробуйте найти страницу для фразы django.forms)

В конце концов, объем работы, которую вы должны делать между рельсами и джанго, эквивалентен и, возможно, чуть меньше с Django. Однако у вас нет одной команды, чтобы автоматически давать вам шаблонный код для использования в качестве основы.

17
ответ дан newz2000 28 August 2018 в 07:43
поделиться

Я нашел это: https://github.com/madhusudancs/django-groundwork

Похоже, это именно то, что вы ищете. Надеюсь, что это поможет.

1
ответ дан Bernardo Siu 28 August 2018 в 07:43
поделиться

Таким образом, Django 1.3 все еще не имеет функциональности «эшафот». Нехорошо. Что лучше всего в эшафоте, так это то, что он позволяет разработчику немедленно начать с проекта, не напомнив все синтаксисы «модели», «urls» и «views».

Посмотрите на этот пример, давайте начнем новый проект и app:

$django-admin startproject mysite
$python manage.py startapp blog

, и теперь нам нужно вручную «СТАРТ» все, начиная с почти пустых файлов. НО было бы очень удобно делать это таким образом (как в рельсах)

$python manage.py scaffold app:blog model:Post title:string content:text 

Это должно дать нам: models.py

class Post(models.Model):
    title    = models.CharField
    content  = models.TextField

views.py

def index(request):
    posts = Post.objects.all().order_by('-id')
    return render_to_response('blog/index.html', {'posts': posts})

и обновить urls.py каким-то образом ... или нет, это сложнее, но менее необходимо.

Это не должно быть сложно реализовать в будущих выпусках Django. Я сделал бы это, если бы у меня было достаточно знаний и опыта в Django. К сожалению, я не занимаюсь многими проектами Django, и поэтому мне нужна эта функциональность.

7
ответ дан januszm 28 August 2018 в 07:43
поделиться

Этот объект ближе к рельсовым лесам: https://github.com/modocache/django-generate-scaffold

7
ответ дан rpq 28 August 2018 в 07:43
поделиться

Я просто использовал команду помощника / управления эшафотом, предоставленную Django Common , и, похоже, установил достойный фрагмент кода шаблона. Варианты ограничены, но достаточно приличные.

Я просмотрел код, и большая часть его выглядит нормально. Мне нужно было немного очистить, как только строительные леса были «установлены»:

  • Для каждой созданной модели были добавлены отдельные строки import. Слияние их.
  • Шаблоны по-прежнему несли старые (1.4) url спецификации тегов шаблонов. Модифицировали их, чтобы отразить новые (1.5) спецификации, т. Е. Включили второй параметр в одинарные кавычки в каждом из созданных html-файлов для каждой из моделей.
  • Обновлен основной urls.py с помощью include для модуля app.urls.
  • Я использую нестандартную настройку settings.py - три отдельных файла common.py, dev.py и prod.py для моей настройки. Пришлось добавить приложение вручную в установленные приложения. YMMV.

(Редактирует этот список, если я думаю о чем-либо еще)

Говоря об этом, глядя на количество шаблонов, которые мне НЕ нужно писать , Я бы сказал, что это очень хорошая работа!

На данный момент репо кажется довольно ухоженным - последнее совершение было 18 дней назад на момент написания ответа. Я, вероятно, отправлю запрос на получение / подниму вопрос о проблемах, с которыми я столкнулся в их репо, в ближайшее время.

1
ответ дан Shrikant Joshi 28 August 2018 в 07:43
поделиться

Вы можете проверить django-addview . Он предназначен для выполнения скучных, мирских шагов, необходимых для автоматического добавления нового представления с помощью удобного графического интерфейса ncurses. Что он делает для вас:

  • Расширить функцию CBV или записи
  • Заполнить параметры CBV
  • Создает шаблон в заданном месте
  • Редактирует urls.py для вас
  • Заботится обо всех импортах

Полное раскрытие: я написал это.

0
ответ дан yakxxx 28 August 2018 в 07:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: