简单有效的Web框架

时间:2010-03-02 11:49:09

标签: python web-frameworks

我正在寻找一个合适的跨平台网络框架(如果这是正确的术语)。我需要的东西不依赖于知道服务器的地址或文件的绝对路径。理想情况下,它将带有(开发)服务器并得到广泛支持。

我已经尝试过PHP,Django和web2py。 Django有一个管理面板,需要太多的信息(如服务器的地址或IP),并感到不愉快的工作; PHP有chown和chmod与服务器冲突(代码无法访问上传的文件,反之亦然),无法正确处理网址; web2py在编译时崩溃,手册没有涵盖 - 更不用说使用管理面板了。 Python可能是要走的路,但即使是Python的不同Web框架和发行版的数量太多,我也无法单独安装和测试。

我需要的是一种简单有效的跨平台Web开发语言,几乎可以在任何地方使用。没有无用的管理面板,没有花哨的用户界面,没有数据库(必然),没有像用户/访问/级别的限制,当然也没有“Web 2.0”废话(因为我讨厌这个反义词)。只是一个功能强大的文件和请求解析器。

我习惯用C语言和其他低级语言编程,所以难度不是问题。

12 个答案:

答案 0 :(得分:5)

这个问题是基于完全无法理解您明显“调查”过的任何工具,或者通常是网络服务。

Django有一个管理面板?好吧,如果你不想,不要使用它。没有需要在那里完成的配置,如果你愿意的话,它可以用来管理你的数据。

PHP有chown问题吗? PHP是一种语言,而不是框架。如果您尝试使用它运行某些内容,则需要适当地设置权限。无论您使用何种语言,情况都是如此。

您想要的东西不需要知道它的地址或文件的位置?那有什么意思?如果您要设置网络服务器,则需要知道要响应的地址。然后,它需要知道响应请求时要运行的代码。如果没有配置某处地址和文件路径,就不会发生任何事情。

答案 1 :(得分:4)

在web2py中,您不需要使用管理界面。这是可选的。 以下是如何从零创建一个简单的应用程序:

 wget http://web2py.com/examples/static/web2py_src.zip
 unzip web2py_src.zip
 cd web2py/applications
 mkdir myapp
 cp -r ../welcome/* ./

可选编辑您的应用

 emacs controllers/default.py 
 emacs models/db.py 
 emacs views/default/index.html
 ...

(您可以删除那里不需要的所有内容)。 现在运行web2py并试用它

 cd ../..
 python web2py.py -i 127.0.0.1 -p 8000 -a chooseapassword &
 wget http://127.0.0.1:8000/myapp/default/index.html

编辑controller / default.py时,您有一个控制器,例如

 def index():
      the_input = request.vars # this is parsed from URL
      return dict(a=3,b=5,c="hello")

您可以返回一个字典(将由与该操作同名的视图解析)或字符串(实际页面内容)。例如:

 def index():
      name = request.vars.name or 'anonymous'
      return "hello "+name

并致电

 wget http://127.0.0.1:8000/myapp/default/index?name=Max

返回

 'hello Max'

/ myapp / default / index?name = Max调用application / myapp /文件夹中应用程序的控制器default.py的函数索引,并将name = Max传递给request.vars.name ='Max'。< / p>

答案 2 :(得分:2)

我认为您需要更具体地了解您想要实现的目标,以及您希望开发的产品类型。 “无需设置”产品可能带来大量的自动配置膨胀,而需要小型设置文件的框架也可以在几分钟内完成设置,从长远来看更加简单。还有一些安全和访问权限需要考虑,因为网络是一个开放的地方。

此外,支持Web 2.0ish的框架不一定是自动框架。不要抛弃好的选择,因为他们做你不喜欢或不需要的事情,只要他们允许你在没有它们的情况下工作。

  

PHP有chown和chmod与服务器冲突(代码无法访问上传的文件,反之亦然),无法正确处理网址;

PHP本身不是一个框架,它是一种编程语言。我不知道您尝试过哪种基于PHP的框架或产品,但您描述的所有问题都是可解决的,而不是PHP独有的。如果你喜欢这种语言,也许再试一次。相关的SO问题:

如果你需要运行无处不在的东西(即在尽可能多的服务器上运行),PHP自然必须成为你的第一选择,因为它击败了所有其他平台在便宜的主机可用性方面。

如果我是你,我不会在这一点上限制我的选择。例如,我听到了很多关于Django的好消息。此外,Google App engine是一个有趣的,可扩展的平台,可以支持多种语言进行Web工作。

答案 3 :(得分:1)

Werkzeug

import werkzeug

@werkzeug.Request.application
def app(request):
  return werkzeug.Response("Hello, World!")

werkzeug.run_simple("0.0.0.0", 4000, app)

您可以选择使用werkzeug URL路由(或您自己的路由或任何其他框架中的任何内容)。您可以使用任何您想要的ORM或模板引擎(包括来自其他Python框架的那些)等。

基本上它只是围绕WSGI和一些实用程序构建的RequestResponse个对象。 Python中有更多类似的库(例如webobCherryPy)。

答案 4 :(得分:1)

  

我需要的是一种简单有效的跨平台Web开发语言,几乎适用于任何地方。

你试过HTML吗?

但严重的是,我认为当他说你需要指明并澄清你想要的东西时,佩卡是对的。 您不需要的大多数功能都是Web应用程序的标准模块(用户和角色管理,数据绑定,持久性,接口)。

我们根据客户要求使用以下任意或混合:perl,PHP,Flash,Moonlight,JSP,JavaScript,Java,(D / X)HTML,zk。

答案 5 :(得分:1)

我是python新手但是经验丰富的PHP开发人员已有12年了,但我不得不承认我因为bottle framework而迁移到了python。我是非洲人,所以你不必太聪明地使用它......试一试,你会爱上它。嘿,它也运行在没有配置的appspot上!

  1. 安装python
  2. 下载bottle.py(单个文件)
  3. 创建

    #your file name : index.py
    from bottle import route, run
    
    @route('/')
    def index():
        return 'jambo kenya! hakuna matata na bottle. hehehe'
    run()
  4. 坐下来,啜饮可可,微笑着:)

答案 6 :(得分:0)

我认为Ruby on Rails是你正在寻找的。可在任何地方使用,无需配置。你只安装它,安装你需要的宝石,然后离开。

我也使用ColdFusion,它完全是多平台的,但依赖于DSN配置和内容的管理员设置。

答案 7 :(得分:0)

TurboGears:一切都是可选的。

答案 8 :(得分:0)

尝试bottle。我用它来做我简单的简洁webapps。根据我的经验,它非常直观且易于使用。

以下是一些示例代码,它只需要bottle.py,没有其他依赖项。

from bottle import route, run

@route('/')
def index():
    return 'Hello World!'

run(host='localhost', port=8080)

答案 9 :(得分:0)

最近偶然发现了Quixote。从来没有用过它。

答案 10 :(得分:0)

使用普通的旧ASP。 IIS不关心文件的存储位置。可以相对于虚拟目录设置所有路径。这意味着你可以包含“/myproject/myfile.asp”,而在PHP中它通常使用相对路径来完成。然后,Global.asa包含应用程序的全局配置。您几乎不必担心代码中的相对路径。

在PHP中,你有包含(dirname( FILE )。'/../../ myfile.php“)这当然很难看。我找到的唯一”解决方案“这是制作HTML文件然后使用SSI(服务器端包括)。

ASP的唯一缺点是可用性,因为它必须在Windows上运行。但是ASP文件只是运行,并且不需要担心复杂的Linux配置。 VBScript语言非常简单,但您也可以选择编写服务器端JavaScript,因为您熟悉C语言。

答案 11 :(得分:-1)

我认为您需要关注Restful Web应用程序。 Zend是一个基于PHP的MVC框架。