4

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

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

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

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

4

12 回答 12

5

这个问题是基于完全无法理解您显然“调查过”的任何工具,或者实际上是一般的网络服务。

Django有一个管理面板?好吧,如果您不想使用它,请不要使用它。那里不需要进行任何配置,如果您愿意,它可以用于管理您的数据。

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

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

于 2010-03-02T12:08:03.510 回答
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 调用文件夹 applications/myapp/ 中应用程序的控制器 default.py 的函数索引,并将 name=Max 传递给 request.vars.name='Max'。

于 2010-03-02T13:14:54.133 回答
2

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

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

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

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

如果您需要可以在任何地方运行的东西(即在尽可能多的服务器上),PHP 自然会成为您的首选,因为它在廉价托管可用性方面胜过所有其他平台。

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

于 2010-03-02T11:53:59.197 回答
1

韦克泽格

import werkzeug

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

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

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

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

于 2010-03-02T11:55:47.210 回答
1

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

你试过 HTML 吗?

但说真的,当 Pekka 说你需要具体说明和澄清你想要什么时,我认为他是对的。您不想要的大多数功能都是 Web 应用程序的标准模块(用户和角色管理、数据绑定、持久性、接口)。

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

于 2010-03-02T13:47:33.400 回答
1

我是 python 新手,但有 12 年经验的 PHP 开发人员,但我不得不承认我迁移到 python 是因为瓶子框架。我是非洲人,所以你不必特别聪明就可以使用它……试试看,你会喜欢的。嘿,它也可以在没有配置的 apppot 上运行!

  1. 安装蟒蛇
  2. 下载bottle.py(单个文件)
  3. 创造

    #你的文件名:index.py
    从瓶子进口路线,运行
    
    @路线('/')
    定义索引():
        返回'jambo肯尼亚!hakuna matata na 瓶子。嘿嘿嘿'
    跑()
  4. 坐下来,啜饮可可,微笑:)
于 2011-06-29T07:07:54.907 回答
0

我会说 Ruby on Rails 是您正在寻找的。随时随地工作,无需配置。你只需要安装它,安装你需要的 gem,然后就可以了。

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

于 2010-03-02T11:51:41.697 回答
0

TurboGears:一切都是可选的。

于 2010-03-02T11:51:53.397 回答
0

试试瓶子。我将它用于我的简单简洁的 web 应用程序。根据我的经验,它非常直观且易于使用。

这是一些示例代码,它只需要bottle.py,不需要其他依赖项。

from bottle import route, run

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

run(host='localhost', port=8080)
于 2010-03-02T11:55:25.207 回答
0

最近偶然发现了吉诃德。不过从来没用过。

于 2010-03-02T12:42:10.750 回答
0

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

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

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

于 2010-03-02T13:30:26.770 回答
-1

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

于 2010-03-02T11:53:24.127 回答