Простой и эффективный веб-фреймворк - PullRequest
4 голосов
/ 02 марта 2010

Я ищу подходящий кроссплатформенный веб-фреймворк (если это правильный термин). Мне нужно что-то, что не зависит от знания адреса сервера или абсолютного пути к файлам. В идеале он будет поставляться с сервером (для разработчиков) и будет широко поддерживаться.

Я уже пробовал PHP, Django и web2py. У Django была панель администратора, требовалось слишком много информации (например, адрес сервера или IP-адрес), и с ней было неприятно работать; PHP имел конфликты chown и chmod с сервером (код не мог получить доступ к загруженным файлам или наоборот) и не мог правильно обрабатывать URL; При компиляции web2py рухнул, и в руководстве это не освещалось - не говоря уже о том, что это требовалось с помощью админ-панели. Вероятно, Python - это то, что нужно, но даже количество различных веб-фреймворков и дистрибутивов для Python слишком велико, чтобы я мог устанавливать и тестировать их по отдельности.

Мне нужен простой и эффективный кроссплатформенный язык веб-разработки, который работает практически везде. Никаких бесполезных админ-панелей, никаких причудливых пользовательских интерфейсов, никаких баз данных (обязательно), никаких ограничений, таких как users / access / level и, конечно, никакого дерьма "Web 2.0" (потому что я ненавижу этот ретроним) Просто всесильный анализатор файлов и запросов.

Я привык к программированию на C и других низкоуровневых языках, поэтому сложность не проблема.

Ответы [ 12 ]

5 голосов
/ 02 марта 2010

Этот вопрос основан на полном непонимании какого-либо из инструментов, которые вы, по-видимому, «исследовали», или вообще веб-службы.

У Django есть панель администратора? Ну, не используйте его, если не хотите. Там нет никакой конфигурации, которую нужно делать, она предназначена для управления вашими данными, если хотите.

У PHP есть проблемы? PHP это язык, а не фреймворк. Если вы попытаетесь запустить что-то с ним, вам нужно будет установить соответствующие разрешения. Это будет так, независимо от того, какой язык вы используете.

Вы хотите что-то, что не должно знать его адрес или где находятся его файлы? Что это хотя бы значит? Если вы настраиваете веб-сервер, он должен знать, на какой адрес отвечать. Затем он должен знать, какой код запустить в ответ на запрос. Без настройки где-нибудь адреса и пути к файлам ничего не произойдет.

4 голосов
/ 02 марта 2010

В 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 вызывает индекс функции контроллера default.py приложения в папке apps / myapp / и передает name = Max в request.vars.name = 'Max'.

2 голосов
/ 02 марта 2010

Я думаю, что вам нужно быть более точным в отношении того, чего вы хотите достичь, и какого рода продукт (ы) вы хотите разработать. Продукт «не требует установки» может поставляться с тоннами раздувания с автоматической настройкой, в то время как инфраструктура, требующая небольшой установочный файл, может быть настроена также за считанные минуты, с гораздо большей простотой в долгосрочной перспективе. Также всегда будут учитываться некоторые права безопасности и права доступа, просто потому, что сеть - это открытое место.

Кроме того, фреймворк, поддерживающий Web 2.0, не обязательно должен быть фреймворком bad . Не выбрасывайте хорошие варианты, потому что они также делают вещи, которые вам не нравятся или не нужны, если они позволяют вам работать без них.

PHP конфликтует с сервером chown и chmod (код не может получить доступ к загруженным файлам или наоборот) и не может правильно обрабатывать URL;

PHP не сам по себе фреймворк, это язык программирования. Я не знаю, какую платформу или продукт на основе PHP вы пробовали, но все проблемы, которые вы описываете, разрешимы и не уникальны для PHP. Если вам нравится язык, возможно, сделайте еще один снимок. Смежные вопросы:

Если вам нужно что-то, что работает везде (т. Е. На как можно большем количестве серверов), PHP, естественно, должен быть вашим первым выбором, просто потому, что он превосходит любую другую платформу с точки зрения дешевого хостинга доступности.

На вашем месте я бы не стал так сильно ограничивать свои возможности. Например, я слышал много хорошего о Джанго. Кроме того, движок Google App - это интересная, масштабируемая платформа для работы в Интернете, поддерживающая несколько языков.

1 голос
/ 29 июня 2011

Я новичок в Python, но уже 12 лет являюсь опытным разработчиком PHP, но должен признать, что я перешел на 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. Сядьте, выпейте какао и улыбнитесь:)
1 голос
/ 02 марта 2010

Мне нужен простой и эффективный кроссплатформенный язык веб-разработки, который работает практически везде.

Вы пробовали HTML?

А если серьезно, я думаю, что Пекка прав, когда говорит, что вам нужно уточнить и уточнить, что вы хотите. Большинство функций, которые вам не нужны, - это стандартные модули веб-приложения (пользователь и роль mgmt., Привязка данных, постоянство, интерфейсы).

В зависимости от требований клиента мы используем любое из следующих сочетаний или их сочетание: Perl, PHP, Flash, Moonlight, JSP, JavaScript, Java, (D / X) HTML, zk.

1 голос
/ 02 марта 2010

Werkzeug :

import werkzeug

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

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

Вы можете по желанию использовать URL-маршрутизацию werkzeug (или свою собственную, или любую другую из любой другой среды).Для Python вы можете использовать любой ORM или шаблонизатор (в том числе из других платформ Python) и т.д.В Python доступно больше похожих библиотек (например, webob или CherryPy ).

0 голосов
/ 02 марта 2010

Использовать старый добрый ASP. IIS не волнует, где хранятся файлы. Все пути могут быть установлены относительно виртуального каталога. Это означает, что вы можете включить «/myproject/myfile.asp», тогда как в PHP это часто делается с использованием относительных путей. Global.asa затем содержит глобальную конфигурацию для приложения. Вам вряд ли когда-нибудь придется беспокоиться об относительных путях в коде.

В PHP вы должны были бы включить (dirname ( FILE ). '/../../Myfile.php "), что, конечно, плохо. создает файлы HTML, а затем использует SSI (включая серверную часть).

Единственным недостатком ASP является доступность, так как он должен работать в Windows. Но ASP-файлы просто запускаются, и не нужно беспокоиться о сложной конфигурации Linux. Язык VBScript чрезвычайно прост, но вы также можете написать JavaScript на стороне сервера, так как вы знакомы с C.

0 голосов
/ 02 марта 2010

Только что наткнулся на Кихот недавно. Никогда не использовал это все же.

0 голосов
/ 02 марта 2010

Дайте бутылку попробовать. Я использую его для своих простых веб-приложений без излишеств. Это очень интуитивно и легко работать с моим опытом.

Вот пример кода, и он требует только bottle.py, никаких других зависимостей.

from bottle import route, run

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

run(host='localhost', port=8080)
0 голосов
/ 02 марта 2010

Я думаю, вам нужно сосредоточиться на веб-приложениях Restful. Zend - это основанный на PHP фреймворк MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...