4

適切なクロスプラットフォーム Web フレームワークを探しています (それが適切な用語である場合)。サーバーのアドレスやファイルへの絶対パスを知ることに依存しないものが必要です。理想的には、(開発) サーバーが付属しており、広くサポートされています。

私はすでに PHP、Django、web2py を試しました。Django には管理パネルがあり、必要な情報 (サーバーのアドレスや IP など) が多すぎて、操作するのが不快でした。PHP にはサーバーとの chown および chmod の競合があり (コードはアップロードされたファイルにアクセスできず、その逆も同様)、URL を適切に処理できませんでした。コンパイル時に web2py がクラッシュし、マニュアルにはそれが記載されていませんでした。言うまでもなく、管理パネルを使用する必要がありました。おそらく Python が最適ですが、Python 用のさまざまな Web フレームワークやディストリビューションの数が多すぎて、個別にインストールしてテストすることはできません。

私が必要としているのは、ほぼどこでも機能するシンプルで効果的なクロスプラットフォームの Web 開発言語です。役に立たない管理パネル、派手なユーザー インターフェイス、データベース (必然的に) はなく、ユーザー/アクセス/レベルなどの制限はなく、「Web 2.0」のがらくたもありません (私はそのレトロニムが嫌いです)。まさに強力なファイルおよびリクエスト パーサーです。

私は C やその他の低水準言語でのプログラミングに慣れているので、難しさは問題ではありません。

4

12 に答える 12

5

この質問は、明らかに「調査」したツール、または実際には一般的な Web サービスを完全に理解していないことに基づいています。

Django には管理パネルがありますか? まあ、使いたくないなら使わないでください。そこで行う必要がある構成はありません。必要に応じてデータを管理するためのものです。

PHP に chown の問題がありますか? PHP はフレームワークではなく、言語です。それを使って何かを実行しようとする場合は、権限を適切に設定する必要があります。これは、使用する言語に関係なく当てはまります。

アドレスやファイルの場所を知る必要のないものが必要ですか? それは一体何の意味ですか?Web サーバーをセットアップしている場合は、応答するアドレスを知る必要があります。次に、リクエストに応じて実行するコードを知る必要があります。アドレスとファイルへのパスをどこかに設定しなければ、何も起こりません。

于 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")

dict (アクションと同じ名前のビューによって解析されます) または文字列 (実際のページ コンテンツ) を返すことができます。例えば:

 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 の関数 index を呼び出し、name=Max を request.vars.name='Max' に渡します。

于 2010-03-02T13:14:54.133 に答える
2

何を実現したいのか、どのような製品を開発したいのか、もっと具体的にする必要があると思います。「セットアップが不要」な製品には大量の自動構成の肥大化が伴う可能性がありますが、小さなセットアップ ファイルを必要とするフレームワークも数分でセットアップでき、長期的にははるかにシンプルになります。Web はオープンな場所であるという理由だけで、考慮すべきセキュリティとアクセス権も常に存在します。

また、Web 2.0 っぽいものをサポートするフレームワークは、必ずしも悪いフレームワークである必要はありません。良いオプションを捨てないでください。好きでないことや必要のないこともしてくれるからです。

PHP にはサーバーとの chown および chmod の競合があり (コードはアップロードされたファイルにアクセスできず、その逆も同様)、URL を適切に処理できませんでした。

PHP 自体はフレームワークではなく、プログラミング言語です。あなたが試した PHP ベースのフレームワークまたは製品はわかりませんが、あなたが説明したすべての問題は解決可能であり、PHP に固有のものではありません。言語が気に入ったら、もう一度試してみてください。関連する SO の質問:

どこでも(つまり、できるだけ多くのサーバーで)動作するものが必要な場合は、PHP を最初に選択する必要があります。これは、安価なホスティングの可用性という点で、他のすべてのプラットフォームよりも優れているからです。

私があなただったら、この時点で選択肢をそれほど制限しないでしょう。たとえば、Django については良いことをたくさん耳にします。また、Google App Engineは、Web 作業を行うための興味深い拡張可能なプラットフォームであり、多くの言語をサポートしています。

于 2010-03-02T11:53:59.197 に答える
1

私はPythonの初心者ですが、12年間PHP開発者としての経験がありますが、ボトルフレームワークのためにPythonに移行したことを認めなければなりません。私はアフリカ人なので、それを使用するために特別に賢くする必要はありません...試してみてください、あなたはそれを気に入るはずです。ねえ、それは設定なしでappspotでも実行されます!

  1. Pythonをインストールする
  2. bottle.pyをダウンロード(単一ファイル)
  3. 作成

    #あなたのファイル名:index.py
    ボトルのインポートルートから、実行します
    
    @ルート('/')
    def index():
        リターン'ジャンボケニア!はくなまたななびん。hehehe '
    走る()
  4. 座って、ココアを飲み、笑顔で:)
于 2011-06-29T07:07:54.907 に答える
1

私が必要としているのは、ほとんどどこでも機能する、シンプルで効果的なクロスプラットフォームのWeb開発言語です。

HTMLを試しましたか?

しかし、真剣に、私はあなたがあなたが望むものを特定して明確にする必要があると彼が言うとき、ペッカは正しいと思います。不要な機能のほとんどは、Webアプリの標準モジュール(ユーザーとロールの管理、データバインディング、永続性、インターフェイス)です。

お客様の要件に応じて、perl、PHP、Flash、Moonlight、JSP、JavaScript、Java、(D / X)HTML、zkのいずれかまたは組み合わせを使用します。

于 2010-03-02T13:47:33.400 に答える
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 フレームワークのものを含む) などを使用できます。

基本的には、WSGI といくつかのユーティリティを中心に構築されたオブジェクトですRequestResponsePython で利用できる同様のライブラリが他にもあります ( webobCherryPyなど)。

于 2010-03-02T11:55:47.210 に答える
0

Ruby on Rails はあなたが探しているものだと思います。どこでも動作し、設定は不要です。インストールするだけで、必要なgemをインストールして、すぐに使用できます.

また、完全にマルチプラットフォームである ColdFusion も使用していますが、DSN 構成などは管理者設定に依存しています。

于 2010-03-02T11:51:41.697 に答える
0

TurboGears : すべてオプション。

于 2010-03-02T11:51:53.397 に答える
0

ボトルを試してみてください。シンプルで飾り気のない webapps に使用します。私の経験では、非常に直感的で簡単に操作できます。

ここにいくつかのサンプル コードがあります。必要なのは だけ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

従来の ASP を使用します。IIS はファイルの保存場所を気にしません。すべてのパスは、仮想ディレクトリからの相対パスで設定できます。つまり、"/myproject/myfile.asp" を含めることができますが、PHP では相対パスを使用して行うことがよくあります。Global.asa には、アプリケーションのグローバル構成が含まれます。コード内の相対パスについて心配する必要はほとんどありません。

PHP では include(dirname( FILE ) . '/../../myfile.php") が必要です。これはもちろん厄介です。私が見つけた唯一の「解決策」は、HTML ファイルを作成してから SSI を使用することです (サーバー側が含まれます)。

ASP の唯一の欠点は、Windows 上で実行する必要があるため、可用性です。しかし、ASP ファイルは実行されるだけであり、複雑な Linux 構成について心配する必要はありません。VBScript 言語は非常に単純ですが、C に精通しているため、サーバー サイド JavaScript を作成することもできます。

于 2010-03-02T13:30:26.770 に答える
0

最近キホーテに出会いました。しかし、それを使用したことはありません。

于 2010-03-02T12:42:10.750 に答える
-1

Restful Web アプリケーションに集中する必要があると思います。Zend は PHP ベースの MVC フレームワークです。

于 2010-03-02T11:53:24.127 に答える