Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Использование models и API Django без управления manage.py [RSS Feed]

#1 Июль 2, 2008 20:51:45

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

Есть два отдельных приложения(в разных папках, чтобы не смешивать). Одно, полностью на Django, другое, TCP-сервер, который должен использовать некоторый код из приложения Django, а также API для работы с базой данных. Например, коннектиться к базе, используя settings и выполнять запросы, используя models, форматировать результат используя шаблоны специфичные для TCP-сервера или как-то по другому обрабатывать результат для передачи клиенту. При этом код должен исполняться в процессе TCP-сервера в основном или дочернем потоке, а не в процессе управляемом Django.

Вопрос, можно ли так работать без управления Django, т.е. не запуская manage.py? Как вообще это правильно делать?
Хотелось бы посмотреть примеры.



Офлайн

#2 Июль 2, 2008 21:25:31

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

Можно сделать свою команду для manage.py: http://webnewage.org/post/2008/2/5/komandovat-paradom-budet-django/ - и в ней использовать сервер.
Либо определить переменную окружения DJANGO_SETTINGS_MODULE и использовать джанго проект из стороннего питон-приложения.



Офлайн

#3 Июль 3, 2008 01:17:54

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

Загрузить TCP-сервер из под Django, чтобы при этом было доступно API, как я понимаю, можно либо форком либо в потоке. Оба варианта мне не нравятся.
Также, хотелось бы не нагружать Django-проект посторонней работой, а просто импортировать нужные модули в TCP-проект, как это делается для некоторых классов из Django.
Пусть даже для этого придется скопировать модули.



Офлайн

#4 Июль 3, 2008 09:45:59

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

PyCraft
Загрузить TCP-сервер из под Django, чтобы при этом было доступно API, как я понимаю, можно либо форком либо в потоке.
Вовсе нет. В обработчике команды запускайте сервер и всё. Просто у вас поменяется точка входа.
PyCraft
Также, хотелось бы не нагружать Django-проект посторонней работой, а просто импортировать нужные модули в TCP-проект, как это делается для некоторых классов из Django.
Тогда второй вариант более подходит.



Офлайн

#5 Июль 3, 2008 11:04:20

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

Daevaorn
определить переменную окружения DJANGO_SETTINGS_MODULE и использовать джанго проект из стороннего питон-приложения.
Пожалуй подходит, спасибо! Буду копать.

Допустим, на этапе разработки я определю переменную окружения и всё получится, а приложение должно будет работать на другом сервере, где нет Django, но есть БД. Придется установить Django и Django-проект на ту машину тоже? Или можно как-то собрать всё в один исполняемый файл?

это TCP-приложение планируется использовать на неизвестном заранее компьютере/сервере и нежелательно усложнять установку.



Отредактировано (Июль 3, 2008 11:09:27)

Офлайн

#6 Июль 3, 2008 14:24:54

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

PyCraft
Допустим, на этапе разработки я определю переменную окружения и всё получится, а приложение должно будет работать на другом сервере, где нет Django, но есть БД. Придется установить Django и Django-проект на ту машину тоже? Или можно как-то собрать всё в один исполняемый файл?
Джанга и проект в любом случае будут нужны на целевой машине. Для упрощения можно их включит в пакет самого сервера. А окружение настроить чисто питоночьим методом.

PyCraft
это TCP-приложение планируется использовать на неизвестном заранее компьютере/сервере и нежелательно усложнять установку.
А то что там будет питон тоже не гарантировано?;)



Офлайн

#7 Июль 3, 2008 15:55:19

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

Daevaorn
А то что там будет питон тоже не гарантировано?wink
Кое где, как допущение, может и не быть, поэтому для таких случаев придется скомпилировать исполняемый файл и включить в него Питон.



Офлайн

#8 Июль 5, 2008 23:29:06

denz
От:
Зарегистрирован: 2007-01-09
Сообщения: 117
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование models и API Django без управления manage.py

import sys, os
sys.path.insert(0,"path_to_django_project")

from django.core.management import setup_environ
import settings
setup_environ(settings)
С этого момента можно импортировать модули из проекта и работать с ними.



Офлайн

  • Начало
  • » Django
  • » Использование models и API Django без управления manage.py[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version