Что это?
Веб-разработка
Составные части
Фронтенд
HTML
<!DOCTYPE html>
<html>
<head>
<title>My title</title>
</head>
<body>
<h1>Heading</h1>
<p>Paragraph.</p>
</body>
</html>
CSS
h1 {
color: blue;
font-family: verdana;
font-size: 300%;
}
p {
color: red;
font-family: courier;
font-size: 160%;
}
JavaScript
function myFunction() {
var x = document.getElementById("form");
var text = "";
var i;
for (i = 0; i < x.length; i++) {
text += x.elements[i].value + "<br>";
}
document.getElementById("output").innerHTML = text;
}
Подходы к организации web-приложений
Популярные js-библиотеки
Темная сторона бекенда
Почему Python?
Темная сторона бекенда
"Чистый" Python или фреймворк?
Что должен уметь бекенд
Python web-фреймворки
WSGI
https://www.python.org/dev/peps/pep-0333/
Bottle
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Tornado
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
MVC
Django
WSGI-совместимые веб-серверы
Python и real-time web
Зачем?
Как доставить контент моментально?
Библиотеки-полифиллы
Если на бекенде Python
Схема работы
Использование в браузере
Особенности
API и клиентские библиотеки
Ссылки
Спасибо!