Soumettre la recherche
Mettre en ligne
Лекция 5 Серверная разработка
•
1 j'aime
•
423 vues
T
Technosphere1
Suivre
Лекция 5 Серверная разработка
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 45
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Работаем с API по-взрослому - Максим Кислов (Badoo)
Работаем с API по-взрослому - Максим Кислов (Badoo)
AvitoTech
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
AvitoTech
Дизайн платформа в Avito - Александр Лобашев (Avito)
Дизайн платформа в Avito - Александр Лобашев (Avito)
AvitoTech
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
GetDev.NET
Serge P Nekoval Grails
Serge P Nekoval Grails
guest092df8
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
Timur Shemsedinov
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
Technosphere1
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
Technosphere1
Contenu connexe
En vedette
L6: Метод опорных векторов
L6: Метод опорных векторов
Technosphere1
Webdev7 (2)
Webdev7 (2)
Technosphere1
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
Technosphere1
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
Technosphere1
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
Technosphere1
L4: Решающие деревья
L4: Решающие деревья
Technosphere1
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
Technosphere1
Лекция 6: Работа с данными. Django ORM
Лекция 6: Работа с данными. Django ORM
Technosphere1
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
Technosphere1
Web лекция 1
Web лекция 1
Technosphere1
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
Technosphere1
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Technosphere1
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
Technosphere1
L13: Заключительная
L13: Заключительная
Technosphere1
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
Technosphere1
L11: Метод ансамблей
L11: Метод ансамблей
Technosphere1
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
Technosphere1
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
Technosphere1
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
Technosphere1
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Technosphere1
En vedette
(20)
L6: Метод опорных векторов
L6: Метод опорных векторов
Webdev7 (2)
Webdev7 (2)
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
L4: Решающие деревья
L4: Решающие деревья
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
Лекция 6: Работа с данными. Django ORM
Лекция 6: Работа с данными. Django ORM
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
Web лекция 1
Web лекция 1
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
L13: Заключительная
L13: Заключительная
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
L11: Метод ансамблей
L11: Метод ансамблей
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Similaire à Лекция 5 Серверная разработка
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
InterSystems
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
InterSystems CEE
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Anthony Marchenko
NPAPI
NPAPI
Timur Rakhmatillaev
Platypus platform ivbit
Platypus platform ivbit
jskonst
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
IT-Доминанта
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
Netbeans Desktop Applications
Netbeans Desktop Applications
scassau
NetBeans 6.0 Desktop
NetBeans 6.0 Desktop
Iljas
Railsclub 2012
Railsclub 2012
Michael Majorov
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
Dmitriy Krukov
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчика
Георгий Драк
Middleware
Middleware
megakott
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
Alexei Smolyanov
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»
SpbDotNet Community
Java как язык Веба: эволюция или ребрендинг
Java как язык Веба: эволюция или ребрендинг
Anatol Filin
Ликбез для HR'ов в IT
Ликбез для HR'ов в IT
Alexander Krass
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
Timur Shemsedinov
Similaire à Лекция 5 Серверная разработка
(20)
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
NPAPI
NPAPI
Platypus platform ivbit
Platypus platform ivbit
Экскурс в мир WEB разработки
Экскурс в мир WEB разработки
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Netbeans Desktop Applications
Netbeans Desktop Applications
NetBeans 6.0 Desktop
NetBeans 6.0 Desktop
Railsclub 2012
Railsclub 2012
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчика
Middleware
Middleware
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Павел Федотовский «Документация REST API c использованием Swagger»
Павел Федотовский «Документация REST API c использованием Swagger»
Java как язык Веба: эволюция или ребрендинг
Java как язык Веба: эволюция или ребрендинг
Ликбез для HR'ов в IT
Ликбез для HR'ов в IT
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
Plus de Technosphere1
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
Technosphere1
Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
Technosphere1
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
Technosphere1
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
Technosphere1
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
Technosphere1
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
Technosphere1
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
Technosphere1
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
Technosphere1
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
Technosphere1
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
Technosphere1
Plus de Technosphere1
(10)
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
Лекция 5 Серверная разработка
1.
Серверная разработка СергейЛихобабин Техносфера2014
2.
Что мы научимся делать Обработка GETи POSTзапросов Генерация
HTML при помощи шаблонов Знакомство с Django
3.
Типичные задачи серверной разработки Отображение и изменение(CRUD)
объектов на сервере Предоставление API и взаимодействие c API других сервисов
4.
Языки серверной разработки Компилируемые C/C++ модули к
Web серверам Java C#
5.
Языки серверной разработки Интерпретируемые Perl PHP Ruby Python Javascript(NodeJS) Lua(скриптование веб-серверов)
6.
Языки серверной разработки Новая волна Go Erlang Scala Groovy
7.
Тенденции Функциональный подход Асинхронность Распределенность Real-Time
8.
Взаимодействие веб- сервера с приложением CGI FastCGI WSGI Веб-сервер встроенный в
приложение
9.
CGI #!/usr/bin/python importos importsys print"Content-type:text/html" print"Status:200" print"" print"<h1>Hello,world!</h1>" fork,vinos.environ.items(): print"%s=%s<br>"%(k,v) print>>sys.stderr,"Nicetomeetyou"
10.
Заголовки ответа Booking.com HTTP/1.1200OK Server:nginx Date:Sun,27Oct201310:08:40GMT Content-Type:text/html;charset=UTF-8 Content-Length:42510 Connection:keep-alive Cache-Control:private Vary:User-Agent,Accept-Encoding Content-Encoding:gzip X-Recruiting:LikeHTTPheaders?Comewriteours:b
11.
Заголовки ответа Reddit.com HTTP/1.1200OK Content-Type:text/html;charset=UTF-8 Vary:accept-encoding Content-Encoding:gzip Content-Length:19879 Server:';DROPTABLEservertypes;-- Date:Sun,27Oct201310:10:10GMT Connection:keep-alive
12.
GET параметры Гиперссылка <ahref="‘/hello.cgi?name=me&greeting=hello’">Hello!</a> Переменная окружения QUERY_STRING=name=me&greeting=hello CGI-скрипт importurlparse params=urlparse.parse_qs('name=me&greeting=hello')
13.
POST параметры Форма <formmethod="”post”"action="”/hello.cgi”"> <inputname="”name”"value="”me”/"> <inputname="”greeting”"value="”hi”/"> <inputtype="”submit”/"> </form> CGI скрипт qs=sys.stdin.read() или cgi.FieldStorage()
14.
Фаилы в POST и Non-ASCII символы Multipart/form-data <formmethod="”post”"action="”/hello.cgi”"enctype= <inputname="”name”"value="”me”/"> <inputname="”pic”"type="”file”/"> <inputtype="”submit”/"> </form> URI encoding <ahref="”/hello.cgi?name=%D0%B8%D0%BC%D1%8F”">привет</a>
15.
Обработка параметров importcgi form=cgi.FieldStorage() #Наличиепараметров ifnot'name'inform: raiseValidationError('panic') #Валидация ifnotre.match('[a-z]+',form['name']): raiseValidationError('panic') #Очистка story=re.sub('<[^>]+>','',form['story']) #Экранирование story=form['story'] story=story.replace('<','<') story=story.replace('>','>')
16.
Переменные окружения HTTP_COOKIE HTTP_USER_AGENT PATH_INFO QUERY_STRING REMOTE_ADDR REQUEST_METHOD SCRIPT_FILENAME SCRIPT_NAME …
17.
WSGI defapplication(environ,start_response): status='200OK' output='HelloWorld!' response_headers=[ ('Content-type','text/plain'), ('Content-Length',str(len(output))) ] start_response(status,response_headers) return[output]
18.
Gunicorn
19.
Как запустить gunicornmyproject.wsgi:application
20.
Альтернативы uWSGI Tornado Werkzeug
21.
Решаемые задачи
22.
Обработка форм request=Request(environ) error=None url='' ifrequest.method=='POST': url=request.form.get('url') ifnotis_valid_url(url): error='PleaseenteravalidURL' else: short_id=insert_url(url) returnredirect('/%s'%short_id) returnrender_template('new_url.html',error=error,url=url)
23.
Обработка форм Отображение формы и
изменение через один обработчик Сообщение об ошибке и успехе Проверка данных на сервере и клиенте
24.
Ajax Frontend varrequest=$.ajax({ url:”/like/", type:"POST", data:{id:itemId}, dataType:"json" }); request.done(function(result){ if(result.status){$("#log").html(result.msg);} }); request.fail(function(jqXHR,textStatus){ alert("Requestfailed:"+textStatus); })
25.
Ajax Backend importjson request=Request(environ) json_data=json.dumps({ 'status':True, 'msg':u'Лайк!' }) response=Response(json_data,mimetype='text/plain') returnresponse(environ,start_response)
26.
Хранение данных на клиенте Что нужно хранить о пользователе Авторизацию Временную информацию Cookie и сессии Cookie передаются
вместе запросом Сессии хранятся на сервере (в файлах, в базе), идентификатор сессии передаются в куках
27.
Cookie Заголовки Set-Cookie:name=val;path=/;domain=domain.ru; expires=Tue,20Mar201211:52:54GMT Cookie:name=val;name2=val2;is_visited=2011-13-15 Установка importCookie cookie=Cookie.SimpleCookie() cookie['name']='val' cookie['name']['path']='/path' Получение cookie.load('a=b;c=d') fornameincookie: print'%s=>%s'%(name,cookie[name])
28.
Шаблонизаторы ''' <html><body> <h1>%s</h1> </body></html>’’%name VS context={ 'user':get_user(form['name']), 'friends':get_friends(form['name']) } render('tpl/home.html',context)
29.
Шаблонизаторы
30.
Шаблонизаторы Django, Jinja2 {%extends"layout.html"%} {%blockbody%} <ul> {%foruserinusers%} <li>{%includehelper%}</li> {%endfor%} </ul> {%endblock%}
31.
SSI <!--#echovar=”Email"default=""--> <!--#includevirtual="/remote/body.php?argument=val <!--#ifexpr="$name=/(.+)@(?P<domain>.+)/"--> <!--#echovar="1"--> <!--#echovar="domain"--> <!--#endif-->
32.
Фреймворки Готовая архитектура проекта Решения
для часто-встречающихся задач Все их используют
33.
Flask app=Flask(__name__) @app.route('/') defindex_page(): db=get_db() cur=db.execute('selecttitle,textfromentrie entries=cur.fetchall() returnrender_template('show_entries.html',entr @app.route('/contact/') defcontact_page(): returnrender_template('contact_page.html')
34.
MVC
35.
Примеры PHP -CodeIgniter, Yii ASP.NetMVC
Framework Perl-Catalyst Python -Django, Pyramid Ruby-Rubyon Rails
36.
Почему Django?
37.
Почему Django?
38.
Почему Django? Instagram 40+ миллионов пользователей 100+
виртуальных серверов 1 миллион регистраций за 12 часов после запуска Android версии 5 разработчиков
39.
Почему Django? Pinterest 3 миллиона посетителей
в день 4 по популярности в СШАпосле Facebook, Twitter, LinkedIn 410 ТБ пользовательских данных
40.
Почему Django? Disqus 500 миллионов уникальных
посетителей в месяц 750 тысячсайтов используют Disqus 165 тысячсообщений в секунду 8 инженеров-разработчиков
41.
Django
42.
Возможности фреймворка Гибкая ORM Интерфейс администрирования Диспетчер
URL на основе регулярных выражений Шаблонизатор Кэширующий фреймворк Интернационализация Обширное комьюнити
43.
Структура проекта Проект состоит из
приложений Приложения могут находиться где угодно в Python path Pluggable-приложения
44.
Полезные ссылки http://docs.djangoproject.com/ http://www.djangosites.org/with-source/ https://github.com/django/django
45.
Спасибо за внимание СергейЛихобабин s.lihobabin@corp.mail.ru
Télécharger maintenant