Форум сайта python.su
0
Есть два отдельных приложения(в разных папках, чтобы не смешивать). Одно, полностью на Django, другое, TCP-сервер, который должен использовать некоторый код из приложения Django, а также API для работы с базой данных. Например, коннектиться к базе, используя settings и выполнять запросы, используя models, форматировать результат используя шаблоны специфичные для TCP-сервера или как-то по другому обрабатывать результат для передачи клиенту. При этом код должен исполняться в процессе TCP-сервера в основном или дочернем потоке, а не в процессе управляемом Django.
Вопрос, можно ли так работать без управления Django, т.е. не запуская manage.py? Как вообще это правильно делать?
Хотелось бы посмотреть примеры.
Офлайн
2
Можно сделать свою команду для manage.py: http://webnewage.org/post/2008/2/5/komandovat-paradom-budet-django/ - и в ней использовать сервер.
Либо определить переменную окружения DJANGO_SETTINGS_MODULE и использовать джанго проект из стороннего питон-приложения.
Офлайн
0
Загрузить TCP-сервер из под Django, чтобы при этом было доступно API, как я понимаю, можно либо форком либо в потоке. Оба варианта мне не нравятся.
Также, хотелось бы не нагружать Django-проект посторонней работой, а просто импортировать нужные модули в TCP-проект, как это делается для некоторых классов из Django.
Пусть даже для этого придется скопировать модули.
Офлайн
2
PyCraftВовсе нет. В обработчике команды запускайте сервер и всё. Просто у вас поменяется точка входа.
Загрузить TCP-сервер из под Django, чтобы при этом было доступно API, как я понимаю, можно либо форком либо в потоке.
PyCraftТогда второй вариант более подходит.
Также, хотелось бы не нагружать Django-проект посторонней работой, а просто импортировать нужные модули в TCP-проект, как это делается для некоторых классов из Django.
Офлайн
0
DaevaornПожалуй подходит, спасибо! Буду копать.
определить переменную окружения DJANGO_SETTINGS_MODULE и использовать джанго проект из стороннего питон-приложения.
Отредактировано (Июль 3, 2008 11:09:27)
Офлайн
2
PyCraftДжанга и проект в любом случае будут нужны на целевой машине. Для упрощения можно их включит в пакет самого сервера. А окружение настроить чисто питоночьим методом.
Допустим, на этапе разработки я определю переменную окружения и всё получится, а приложение должно будет работать на другом сервере, где нет Django, но есть БД. Придется установить Django и Django-проект на ту машину тоже? Или можно как-то собрать всё в один исполняемый файл?
PyCraftА то что там будет питон тоже не гарантировано?;)
это TCP-приложение планируется использовать на неизвестном заранее компьютере/сервере и нежелательно усложнять установку.
Офлайн
0
DaevaornКое где, как допущение, может и не быть, поэтому для таких случаев придется скомпилировать исполняемый файл и включить в него Питон.
А то что там будет питон тоже не гарантировано?wink
Офлайн
0
import sys, os
sys.path.insert(0,"path_to_django_project")
from django.core.management import setup_environ
import settings
setup_environ(settings)
Офлайн