Skip to content

iitwebdev/lectures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTML & CSS

bootstrap

kube

lesscss

lesscss

sass

БЭМ

haml

haml-jinja

Jade для python

Синхронный Веб (request&response)

CGI и WSGI

Пример CGI скриптов на C++

Для работы нужно поставить библиотеку cgi:

sudo apt-get install libcgicc5-dev

Пример CGI скриптов на Python

Запуск локального web сервера:

python -m CGIHTTPServer
или
python cgiserver.py

Web в python | FastCGI

WSGI

Ian Bicking examples

ScreenShot

WSGI

Примеры как запустить WSGI приложение

PEP 333

WSGI middleware example

Getting Started with WSGI

WSGI tutorial

WSGI citforum:

WSGI - стандарт обмена данными между веб-сервером (backend) и веб-приложением (frontend). Под это определение попадают многие вещи, тот же самый CGI.

def app(environ, start_response):
    start_response('200 OK', [('Content-type', 'text/plain')])
    return ['Hello here']

приложение принимает в качестве аргументов словарь переменных окружения (environ) и исполняемый объект выполнения запроса (start_response). Далее, посылаем начало ответа серверу и возвращаем сам ответ в виде итератора (в данном случае - в виде обычного списка).

Python: Веб-разработка без фреймворков:

Справедливость ради, стоит упомянуть, что некоторые фреймворки также используют middleware. Например, существует Django middleware, которое, естественно, работает только в своей песочнице и потому для всех остальных бесполезно.

WSGI middlewares

A Do-It-Yourself Framework

Another Do-It-Yourself Framework

WSGI tutorial

    class Filter(object):
        def __init__(self, application):
            self.application = application
            
        def __call__(self, environ, start_response):
            # Do something here to modify request
            pass
            
            # Call the wrapped application
            app_iter = self.application(environ, 
                                        self._sr_callback(start_response))
            
            # Do something to modify the response body
            pass
            
            # Return modified response
            return app_iter
            
        def _sr_callback(self, start_response):
            def callback(status, headers, exc_info=None):
                # Do something to modify the response status or headers
                pass
            
                # Call upstream start_response
                start_response(status, headers, exc_info)
            return callback

Шаблоны

Jinja

Jinja Flask example

Chameleon

Mako

Модели

psycopg2

psycopg2

sqlite3

sqlite3

sqlite

SQLAlchemy

SQLAlchemy TUTORIAL

ZODB

Redis

memcached

mongodb

couchdb

Тесты

Python

nose

selenium

behave

lettuce

splinter

CI system

jenkins

buildbot

travis-ci

StriderCD

drone

Автоматизация

Fabric

Docker

Vagrant

Асинхронный Веб

websocket

RFC6455

gevent

tornado

Twisted

python>=3.4

tulip

socketio

AJAX

go websocket

go gorilla websocket

nodejs

Фреймворки

python

Pyramid

Flask

ruby

Ruby&Rails

Go

Revel

Gorilla

Pyramid

WYSIWYG

TinyMCE4

RedactorJS

Filebrowser

Elfinder

pyramid_elfinder

CRUD

pyramid_formalchemy

sacrud

email

pyramid_mailer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published