2010-03-02 47 views
4

我正在尋找一個合適的跨平臺web框架(如果這是適當的術語)。我需要的東西不依賴於知道服務器的地址或文件的絕對路徑。理想情況下,它將配備(開發)服務器並得到廣泛支持。簡單而有效的web框架

我已經試過PHP,Django和web2py。 Django有一個管理面板,需要太多的信息(如服務器的地址或IP),並且感覺不適合使用; PHP有chown和chmod與服務器衝突(代碼無法訪問上傳的文件,反之亦然),無法正確處理url; web2py在編譯時崩潰,手冊沒有涉及到 - 更不用說使用管理面板了。 Python可能是要走的路,但即使是不同的Web框架和Python發行版,對於我來說,單獨進行安裝和測試也是太多了。

我需要的是一個簡單而有效的跨平臺Web開發語言,它可以在任何地方工作。沒有無用的管理面板,沒有花哨的用戶界面,沒有數據庫(必然),沒有限制像用戶/訪問/級別,當然沒有「Web 2.0」廢話(因爲我討厭那retrony)。只需一個全能的文件和請求解析器。

我習慣於用C語言和其他低級語言編程,所以難度不是問題。

+0

PHP是一種語言不是框架。很多框架都建立在PHP之上,您遇到的PHP問題是您可以在任何語言中遇到的情況,具體取決於您的服務器配置。如果你不喜歡任何東西,那麼你的主機支持的大多數腳本語言將滿足你的需求,例如PHP,Ruby,Python,Perl。低級語言(C/C++)通常不用於Web開發。 – Dolbz 2010-03-02 11:54:49

+1

「沒有限制像用戶/訪問/級別」。看不到這是如何工作的。出於某種原因,操作系統會施加安全限制。他們不可能取消。您可能想重新考慮您的要求。 – 2010-03-02 12:01:48

+1

我現在正在建立一個django網站,我沒有看到它需要「服務器的地址或IP」。是的,有一個根URL的設置,但可以是「/」。現在,如果你不想Django,因爲你不想在後端有一個數據庫...... *我能理解。 – 2010-03-02 12:42:28

回答

2

我認爲您需要更具體地瞭解您想要達到的目標以及要開發哪種產品。一個「不需要安裝」的產品可能會伴隨着大量的自動配置膨脹,而需要一個小型安裝文件的框架也可以在幾分鐘內建立起來,並且從長遠來看更加簡單。僅僅因爲網絡是一個開放的地方,總會有一些安全和訪問權利被考慮在內。

此外,支持Web 2.0ish事物的框架並不一定會自動生成不好的框架。不要扔掉不錯的選擇,因爲他們做你不喜歡或需要的東西,只要他們允許你沒有他們的工作。

PHP有chown和chmod與服務器衝突(代碼無法訪問上傳的文件,反之亦然),無法正確處理url;

PHP本身不是一個框架,它是一種編程語言。我不知道你嘗試過哪一種基於PHP的框架或產品,但所描述的所有問題都是可以解決的,而不是PHP獨有的。如果你喜歡這種語言,可以再試一次。相關SO問題:

如果需要的東西,運行到處(即在儘可能多的服務器越好)PHP自然會成爲您的首選,只是因爲它在便宜的主機可用性方面擊敗了其他平臺。儘管如此,如果我是你,我現在不會限制我的選擇。例如,我聽到很多關於Django的好消息。此外,Google App engine是一個有趣的,可擴展的平臺,用於支持多種語言的Web工作。

0

我想說Ruby on Rails就是你要找的。在任何地方工作,無需配置。你只需要安裝它,安裝你需要的寶石,然後離開你。

我也使用ColdFusion,它完全是多平臺,但依賴管理員設置DSN配置和東西。

-1

我認爲你需要關注Restful web應用程序。 Zend是一個基於PHP的MVC框架。

+0

REST與OP的問題無關 – jcdyer 2010-03-02 14:46:29

+0

作者曾說過「我需要的東西不依賴於知道服務器的地址或文件的絕對路徑」。後半部分屬於REST的範疇... – deostroll 2010-03-02 21:02:52

0

bottle試試。我用它來做簡單的簡單的web應用程序。根據我的經驗,這是非常直觀和容易的。

下面是一些示例代碼,它只需要bottle.py,沒有其他依賴關係。

from bottle import route, run 

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

run(host='localhost', port=8080) 
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路由(或自己,或任何其他任何框架)。您可以使用任何您想要的Python的ORM或模板引擎(包括其他Python框架的引擎等)。

基本上它只是RequestResponse圍繞WSGI和一些實用程序而構建的對象。 Python中有更多類似的庫(例如webobCherryPy)。

5

這個問題是基於完全無法理解你明顯「調查」過的任何工具,或者一般的網絡服務。

Django有一個管理面板?那麼,如果你不想使用它,就不要使用它。沒有配置需要在那裏完成,它用於管理您的數據,如果你想。

PHP有chown問題? PHP是一種語言,而不是框架。如果您嘗試使用它運行某些內容,則需要適當地設置權限。無論您使用哪種語言,都會是這種情況。

你想要一些不需要知道其地址或其文件的位置?那有什麼意思?如果您正在設置網絡服務器,則需要知道要響應的地址。然後它需要知道爲響應請求而運行的代碼。沒有配置某處地址和文件的路徑,什麼都不會發生。

0

剛剛偶然發現Quixote最近。從來沒有使用它。

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 

當您編輯控制器/ 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.py的?應用程序在文件夾應用程序/ myapp /中,並將name = Max傳遞給request.vars.name ='Max'。

0

使用普通的舊ASP。 IIS不關心文件的存儲位置。所有路徑都可以相對於虛擬目錄進行設置。這意味着你可以包含「/myproject/myfile.asp」,而在PHP中通常使用相對路徑。 Global.asa然後包含應用程序的全局配置。你幾乎不用擔心代碼中的相對路徑。在PHP中你可以包含(dirname(FILE)'/../../myfile.php'),這當然很好看。我發現的唯一'解決方案'是製作HTML文件,然後使用SSI(服務器端包括)

ASP的唯一缺點是可用性,因爲它必須在Windows上運行,但ASP文件只運行,並沒有複雜的Linux配置擔心。 VBScript是非常簡單的,但你也可以選擇編寫服務器端JavaScript,因爲你熟悉C.因爲你熟悉C.

1

我需要的是一個簡單而有效的跨平臺的Web開發語言,幾乎可以在任何地方工作。

您是否嘗試過HTML?

但嚴重的是,我認爲佩卡說得對,他說你需要指定和澄清你想要的東西。 你不需要的大多數功能都是Web應用程序(用戶和角色管理,數據綁定,持久性,接口)的標準模塊。我們根據客戶的要求使用以下任意一種或多種組合:perl,PHP,Flash,Moonlight,JSP,JavaScript,Java,(D/X)HTML,zk。

1

我是蟒蛇新手,但經驗豐富的PHP開發人員12年,但我不得不承認,我遷移到蟒蛇因爲bottle framework。我是非洲人,所以你不必非常聰明地使用它...試一試,你會喜歡它。嘿,它也運行在沒有配置的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. 坐下來,啜可可和微笑:)