Как использовать Django с GWT? [закрытый]

Для переменная :

foo.h:

class foo
{
private:
    static int i;
};

foo.cpp:

int foo::i = 0;

Это вызвано тем, что может только быть один экземпляр foo::i в Вашей программе. Это - вид эквивалента extern int i в заголовочном файле и int i в исходном файле.

Для постоянный можно поместить значение прямо в объявление класса:

class foo
{
private:
    static int i;
    const static int a = 42;
};
6
задан Community 23 May 2017 в 11:53
поделиться

4 ответа

Если вы хотите создать новую модель, как в GWT, так и в Django, самый простой способ сгенерировать код - начать с очень простого определения модели, например

classname
attribute1 type1
attribute2 type2

Разбор, который с небольшим Python очень прост, и поэтому генерирует код как для Django, так и для GWT, как только вы проанализируете похожие строки . Для настройки как Django, так и GWT потребуется немного больше работы. Учет внешних ключей сложнее. Не забудьте о крошечном сгенерированном методе для сериализации объектов, например, в формате JSON.

Первым рефлексом, который у меня возник, было использование интроспекции в Python, но затем у меня возникли проблемы при самоанализе полей внешнего ключа в моделях django. Может быть, мне стоит взглянуть на код проекта django-docs (доступный в google code).

Наконец, чтобы ускорить разработку GWT + Django, вы можете использовать HTTP-прокси-сервлет в режиме хоста, чтобы не нужно компилировать ваш GWT-материал каждый раз, когда вы хотите запустить свой интерфейс GWT с серверной частью Django. Сервлет на http://www.servletsuite.com/servlets/httpproxy.htm , вероятно, сделает свое дело.

2
ответ дан 9 December 2019 в 20:47
поделиться

Вам не обязательно вручную создавать все объекты Django в JS. GWT состоит только из объектов пользовательского интерфейса и взаимодействует с серверной частью Django для получения данных модели для отображения в браузере и для отправки обновлений обратно. Я использовал серверные части Django как с интерфейсами Adobe Flex, так и с GWT, и ни в том, ни в другом случае мне не приходилось воссоздавать какие-либо объекты Django в JS. Тем не менее, я использовал настраиваемые кодировщики JSON в своей серверной части. Это было сделано для того, чтобы я мог отправлять только информацию, необходимую для пользовательского интерфейса,

3
ответ дан 9 December 2019 в 20:47
поделиться

Очень сложно вручную повторять себя с двумя причудливыми фреймворками, такими как GWT и Django, что в конечном итоге так расстроило меня, что я отказался от этого (я написал первую статью, на которую вы ссылались ).

В конце концов, я переключился на GWT / Java, где Java была Google App Engine. Конечно, есть компромиссы. Мне кажется, что Java сложнее настроить, но как только она станет проще. В конце концов, DRY изречение оказалось для меня слишком похожим на сирену. С GWT / GAE ваши объекты просто проходят сквозь них, и вам не нужно заставлять свой мозг переключаться между языками. Теперь поговорим о LiveCycle и Flex. ;)

Надеюсь, это имело смысл и помогло - это была долгая неделя! :)

PS, вот ' это новое место для этого GWT / Django Tutorial-ish Сообщение

1
ответ дан 9 December 2019 в 20:47
поделиться

В моем проекте Django / GWT я использую django-поршень для предоставления моделей Django через REST API в формате JSON. Посетите веб-сайт поршня, чтобы узнать больше о том, как этого добиться http://bitbucket.org/jespern/django-piston/wiki/Home .

Затем, на стороне GWT, вам нужно только создать типы оверлеев для ваших моделей Django ( DevGuideCodingBasicsOverlay ).

Я использую gwt-dispatch ( http://code.google.com/p/gwt-dispatch/ ) с добавлением некоторых возможностей REST для получения моих моделей из серверной части Django, но вы можете использовать вас все, что вы хотите ( HttpRequestBuilder ), затем используйте GWT JSONParser , и, получив JavaScriptObject и проведя преобразование, вы получите желаемую модель в GWT. Это может показаться слишком сложным, но это не так, как раз наоборот, им очень удобно пользоваться.

6
ответ дан 9 December 2019 в 20:47
поделиться
Другие вопросы по тегам:

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