Django用于简单的Web应用程序

时间:2010-06-26 11:25:56

标签: python django

我正在开发python中的应用程序(API),我想通过Web界面(如Web服务)提供一些功能。 我一直在看django,但我不知道我的想法是否真的很合适。我只想创建一个调用我的API方法的网页,以便完成提供该网页的功能。但是,在遵循教程之后,我对django的观点感到有些困惑。在我看来,与ORM相比,与经典的Web应用程序更相关。

对于如此简单的开发来说,django是一个如此沉重的解决方案(正如我所提到的,通过网络调用我的API)?我是否总是要使用数据库?

感谢。

5 个答案:

答案 0 :(得分:5)

我喜欢django,但有很多东西可以让你的头颅!如果您不想要数据库位,请关注urls.py和views.py,它们将处理您的网址并将您想要的信息作为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)

答案 1 :(得分:4)

您不需要在Django项目中使用数据库。 基本上django附带了一些遵循MVC模式的标准化架构(或者有时描述的MVT)。这包括模型,视图,URL调度,模板等。

可能你需要做以下事情来完成你的任务:

  1. 在urls.py中创建网址定义 一些django视图
  2. 写 django认为不管怎么称呼你的 api并将结果显示为网络 页
  3. 你根本不需要模型和数据库,但你需要获得视图,网址,模板的熟悉。对于你的简单案例来说,它可能看起来像一个大机器,但如果你有一些时间,我鼓励你使用这些django基础知识。

    如果你正在寻找更简单的东西,我听说webpy project。如果您需要非常简单的东西,这可能是更好的选择。

答案 2 :(得分:1)

一个重要的问题是:您是否希望Web服务由Apache等功能齐全的服务器提供,或者您只是将“Web服务器”视为程序中的线程(或等效服务器)? / p>

如果您想运行Apache,那么我建议使用类似Werkzeug的东西,它将为您处理大部分WSGI内容。对于模板,我听说过有关Jinja2的好消息。

如果那太多了,你想要的只是一个轻量级,简单的服务器(比如说,只是在被问到时会吐出一些HTML或XML,并且不需要任何花哨的URL处理),你可以使用随Python附带的SimpleHTTPServerCGIHTTPServer模块。

Django是一个功能齐全的集成软件包,几乎可以提供编写数据库支持的Web应用程序所需的一切。虽然它的各个组件可以单独使用,但如果你只使用一件事(模板和视图引擎,在你的情况下),它可能是过度的。

答案 3 :(得分:1)

根本不需要框架。原始的wsgi并不难,但有点冗长。所以我喜欢使用WebOb

这是Raw wsgi

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

这是webob版本

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 2repoze.bfg使用的任何内容都是公平的游戏。

答案 4 :(得分:0)

您绝对不必使用Django数据库。是否符合您的需求,只有您能说清楚。您可以使用其他Python Web框架。