Django для простого веб-приложения - PullRequest
3 голосов
/ 26 июня 2010

Я занимаюсь разработкой приложения (API) на python и хотел бы предложить некоторые его функции через веб-интерфейс (как это делают веб-службы). Я смотрел на Джанго, но я не знаю, действительно ли хорошо вписывается в мою идею. Я только хочу создать веб-страницу, которая вызывает мои методы API, чтобы реализовать функциональность, которая предлагает эту веб-страницу. Но после того, как я последовал этому уроку, я немного запутался в том, что касается Джанго. Мне кажется, это больше связано с ORM, чем с классическим веб-приложением.

Является ли django решением для такой простой разработки (как я уже говорил, звоните в мой API через Интернет)? Всегда ли мне нужно использовать базу данных?

Спасибо.

Ответы [ 5 ]

5 голосов
/ 26 июня 2010

Я люблю django, но есть много того, что заставит вас задуматься! Если вам не нужен бит базы данных, обратите внимание на urls.py и views.py, которые обработают ваши URL-адреса и вернут необходимую информацию в виде ответа http.

например. urls.py

urlpatterns += patterns('myapp.views',

    url(r'^getstuff/$', 'getstuff' ),
)

в views.py

def getstuff(request):

   do whatever in python

   return HttpResponse(stuff to return)
4 голосов
/ 26 июня 2010

Вам не нужно использовать базу данных в проектах Django.В основном django поставляется с некоторой стандартизированной архитектурой , которая следует шаблону MVC (или MVT, как иногда описано).Это включает в себя модели, представления, рассылку URL, шаблоны и т. Д.

Вероятно, вам нужно выполнить следующие вещи для выполнения вашей задачи:

  1. создать определение URL в urls.py для некоторого djangoview
  2. напишите django view, который каким-то образом вызывает ваш API и отображает результат в виде веб-страницы

вам не нужны модели и база данных вообще, но вам нужно познакомиться с представлениями,URL, шаблоны.Это может показаться большим механизмом для вашего простого случая, но если у вас есть время, я призываю вас к этим основам django.

Если вы ищете что-то гораздо более простое, я слышал о webpy project ,Это может быть лучшим вариантом, если вам нужно что-то действительно простое.

1 голос
/ 26 июня 2010

Нет необходимости в каркасе вообще. Сырой WSGI не сложен, но немного многословен. Поэтому я люблю использовать WebOb

Вот сырые слова

def application(environ, start_response):
    start_response("200 OK", [])
    return ["<html><body><h1>Hello World</h1></body></html>"]

Вот версия вебоба

from webob.dec import wsgify
from webob import Request

@wsgify
def application(request):
    return Response("<html><body><h1>Hello World</h1></body></html>")

Этого достаточно для запуска под apache mod_wsgi, и вы можете использовать множество библиотек, которые ожидают / производят запросы и ответы webob. Все, что Turbogears 2 или repoze.bfg использует в этом случае, является честной игрой.

1 голос
/ 26 июня 2010

Важный вопрос: хотите ли вы, чтобы веб-службы предоставлялись полнофункциональным сервером, таким как Apache, или вы просто рассматриваете «веб-сервер» как поток (или эквивалент) в вашей программе?

Если вы хотите запустить Apache, я бы порекомендовал что-то вроде Werkzeug , которое будет обрабатывать большую часть WSGI для вас. Что касается шаблонов, я слышал хорошие вещи о Jinja2 .

Если это слишком много, и все, что вам нужно, - это легкий, простой сервер (который, скажем, просто выплевывает HTML или XML при запросе и не требует какой-либо сложной обработки URL), вы можете использовать SimpleHTTPServer или CGIHTTPServer модули, поставляемые с Python.

Django - это полнофункциональный интегрированный пакет, который предоставляет практически все, что вам нужно для написания веб-приложений на основе базы данных. Хотя его различные компоненты могут использоваться изолированно, если вы используете только одну вещь (в вашем случае движки шаблонов и представления), это, вероятно, излишне.

0 голосов
/ 26 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...