Веб-приложение Python - PullRequest
       12

Веб-приложение Python

6 голосов
/ 06 декабря 2009

Я хочу создать очень простое веб-приложение на Python. Мне не нужен Django или другие подобные веб-фреймворки. Нет ли более простого способа создания веб-приложения на python?

Спасибо

Ответы [ 8 ]

10 голосов
/ 06 декабря 2009

Если вам не нужен Django, попробуйте web.py

http://webpy.org/

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'world'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()
5 голосов
/ 06 декабря 2009

Конечно! Например ,

print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

это веб-приложение - если вы сохраняете его в файл в соответствующем каталоге компьютера, на котором работает веб-сервер, и правильно настраиваете конфигурацию сервера (в зависимости от сервера); В статье, на которую я указал, конкретно показано, как развернуть это веб-приложение в Google App Engine, но практически любой веб-сервер может обслуживать приложения CGI , и это простой пример этого.

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

3 голосов
/ 06 декабря 2009

WSGI , вероятно, то, что вы ищете. Хотя есть несколько легких веб-фреймворков Python , которые менее монолитны, чем Django.

1 голос
/ 06 декабря 2009

Правда в том, что вам нужна какая-то структура, даже если она чрезвычайно минимальна. Вы можете использовать WSGI в качестве основы, и, по крайней мере, вы чувствуете себя немного лучше. Python - очень мощный, очень неопределенный язык программирования, поэтому, если вы решите сделать это без фреймворка, вам придется переписать огромное количество кода, который вы воспринимаете как должное.

Если вы решите пойти с чем-то другим, кроме Django, попробуйте этот список , и, возможно, вы найдете что-то достаточно простое, чтобы вам было приятно. :)

0 голосов
/ 29 января 2015

Вы можете попробовать Appier (https://github.com/hivesolutions/appier). Вот пример приложения:

import appier

class HelloApp(appier.App):

    @appier.route("/", "GET")
    def hello(self):
        return "Hello World"

HelloApp().serve()

А вот как вы его запускаете:

pip install appier
python hello.py

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

0 голосов
/ 21 июля 2014

Теперь несколько дней лучше использовать PhusionPassenger Standalone или с NGINX, используя ту же технику, что и PHP, передав прокси-сервер в FastCGI в случае PHP и WSGI для Python.

URL и все объяснения для Пассажира можно найти: Здесь

Вся информация о Python, работающем в NGINX через FastCGI , uWSGI или Пассажирский

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

Удачи!

0 голосов
/ 29 октября 2011

Я использую бутылку все время как минимальный веб-фреймворк. Это очень просто в использовании.

как минимальный пример - взято с сайта:

from bottle import route, run

@route('/hello/:name')
def index(name='World'):
    return '<b>Hello %s!</b>' % name

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

вы просто ассоциируете url (маршрут) с функциями. Этот даже получить необязательный аргумент. Он имеет опциональный легкий шаблонный язык, и вы можете настроить его для наших нужд. Очень мощный.

Его также очень легко установить - так как он поставляется в виде единого файла, стоящего вдоль вашего приложения, и является чисто совместимым Python. Его также очень легко отлаживать, с хорошей автоматической перезагрузкой при модификации в режиме разработки.

В качестве конечного преимущества, он плавно работает под pypy - таким образом, обеспечивая повышение скорости по сравнению с другими платформами.

0 голосов
/ 06 декабря 2009

Да, WSGI ...

def hello_wsgi(environ, start_response):
    start_response('200 OK', [('content-type', 'text/html')])
    return ['Hello world!']

Если вы хотите абстрагироваться от запроса / ответа, чтобы немного отойти от http, попробуйте webob .

from webob import Request, Response

def hello_wsgi(environ, start_response):
    request = Request(environ)
    #do something with the request
    #return a response
    return Response("Hello World!")(environ, start_response)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...