Простая и эффективная веб-платформа


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

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

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

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

12 4

12 ответов:

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

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

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

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

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

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

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

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

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

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

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

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 (или свою собственную, или что-либо из любой другой платформы). Вы можете использовать любой ORM или шаблонный движок для Python, который вы хотите (в том числе из других фреймворков Python) и т. д.

В основном это просто Request и Response объекты, построенные вокруг WSGI плюс некоторые утилиты. В Python доступно больше подобных библиотек (например, webob или CherryPy).

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

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

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

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

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

Я бы сказал, что Ruby on Rails - это то, что вы ищете. Работает везде, и никакая конфигурация не требуется. Вы только установили его, установите драгоценные камни, которые вам нужны, и вперед.

Я также использую ColdFusion, который полностью мультиплатформенный, но полагается на Настройки администратора для конфигурации DSN и прочее.

TurboGears : все опционально.

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

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

from bottle import route, run

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

run(host='localhost', port=8080)

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

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

В PHP вы бы включили (dirname (FILE). - /../../мой_файл.php"), что, конечно, фугли. Единственное "решение" я найдено для этого создание HTML-файлов, а затем с помощью SSI (серверная сторона включает).

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

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