Django用于简单Web应用程序

3
我正在开发一个Python应用程序(一个API),我想通过Web界面(就像Web服务一样)提供其中一些功能。我一直在研究Django,但不确定它是否真正适合我的想法。我只想创建一个网页,调用我的API方法以完成该网页提供的功能。但是,在按照教程操作后,我对Django的重点有些困惑。它似乎更与ORM相关,而不是经典的Web应用程序。
对于这种简单的开发(如我所述,通过Web调用我的API),Django是否是一个过于繁重的解决方案?我必须始终使用数据库吗?
谢谢。
5个回答

5
我喜欢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
你在Django项目中不需要使用数据库。基本上,Django提供了一些遵循MVC模式(或有时称为MVT)的标准化架构,包括模型、视图、URL分发、模板等。
可能你需要完成以下任务来实现你的目标:
1. 在urls.py中创建url定义,指向某个Django视图 2. 编写Django视图,以某种方式调用你的API并将结果显示为Web页面
你完全不需要模型和数据库,但你需要熟悉视图、URL和模板。对于你的简单情况,这可能看起来像一个庞大的机器,但如果你有一些时间,我鼓励你学习这些Django基础知识。
如果你正在寻找更简单的东西,我听说过webpy项目。如果你需要真正简单的东西,这可能是更好的选择。

我决定继续使用django。我认为django的官方教程在网络应用程序开发的初步阶段过于繁重。 不过,我找到了另一个更关注网络部署而不是ORM的教程。它遵循了你上面提到的两个主要点,最终让我豁然开朗。 - Francisco

1

完全不需要框架。原始WSGI并不难,但有点啰嗦。所以我喜欢使用WebOb

这是原始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使用的东西都是公平竞争的。


1
一个重要的问题是:您是否希望由像Apache这样的全功能服务器提供Web服务,还是只是希望“Web服务器”成为程序中的一个线程(或等效物)?
如果您想运行Apache,那么我建议使用类似于Werkzeug的工具,它将为您处理大部分WSGI相关的内容。对于模板,我听说Jinja2不错。
如果这太复杂了,而您只需要一个轻量级的简单服务器(比如说,只需在被请求时输出一些HTML或XML,并且不需要任何高级URL处理),您可以使用Python附带的SimpleHTTPServerCGIHTTPServer模块。

Django是一个功能齐全的集成包,几乎提供了编写基于数据库的Web应用程序所需的一切。虽然它的各个组件可以被单独使用,但如果你只使用其中一项(例如模板和视图引擎),那么它可能过于复杂。


0

使用Django时,您绝对不必使用数据库。它是否符合您的需求,只有您自己才能判断。还有其他Python Web框架可供选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接