我正在寻找一个合适的跨平台网络框架(如果这是正确的术语)。我需要的东西不依赖于知道服务器的地址或文件的绝对路径。理想情况下,它将带有(开发)服务器并得到广泛支持。
我已经尝试过PHP,Django和web2py。 Django有一个管理面板,需要太多的信息(如服务器的地址或IP),并感到不愉快的工作; PHP有chown和chmod与服务器冲突(代码无法访问上传的文件,反之亦然),无法正确处理网址; web2py在编译时崩溃,手册没有涵盖 - 更不用说使用管理面板了。 Python可能是要走的路,但即使是Python的不同Web框架和发行版的数量太多,我也无法单独安装和测试。
我需要的是一种简单有效的跨平台Web开发语言,几乎可以在任何地方使用。没有无用的管理面板,没有花哨的用户界面,没有数据库(必然),没有像用户/访问/级别的限制,当然也没有“Web 2.0”废话(因为我讨厌这个反义词)。只是一个功能强大的文件和请求解析器。
我习惯用C语言和其他低级语言编程,所以难度不是问题。
答案 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)
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和一些实用程序构建的Request
和Response
个对象。 Python中有更多类似的库(例如webob或CherryPy)。
答案 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上!
创建
#your file name : index.py from bottle import route, run @route('/') def index(): return 'jambo kenya! hakuna matata na bottle. hehehe' run()
答案 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框架。