$30 off During Our Annual Pro Sale. View Details »

Python para desarrolladores web

jmortegac
February 13, 2016

Python para desarrolladores web

Python para desarrolladores web

jmortegac

February 13, 2016
Tweet

More Decks by jmortegac

Other Decks in Programming

Transcript

  1. http://creativecommons.org/licenses/by-nc-sa/3.0/ Leganés, 11 y 12 de febrero José Manuel Ortega

    Leganés, 11 y 12 de febrero José Manuel Ortega @jmortegac Python para desarrolladores web
  2. 2 Python para desarrolladores web https://speakerdeck.com/jmortega

  3.  Stack,Django,Flask,Pyramid  Requests  Scraping(BeautifulSoap,Scrapy)  Bokeh  API

    Rest (Django-Rest-Framework)  Twitter API 3 Python para desarrolladores web Agenda
  4. 4 Python para desarrolladores web Python Zen

  5. Stack 5 Python para desarrolladores web

  6. Django 6 Python para desarrolladores web

  7. Django 7  Most popular Python web framework  Full

    stack web framework  Django-ORM  Template Engine  HTTP Request/Response  URL Routing Mechanism  Testing  Dev Server (WSGI) Python para desarrolladores web
  8. Django 8  Model Template View  Model → modelo

    de datos (models.py)  View →vistas de datos (views.py): qué datos se presentan  Template → plantillas HTML:cómo se presentan los datos Python para desarrolladores web
  9. Django 9  django.contrib.auth Un sistema de autenticación  django.contrib.contenttypes

     Un framework para tipos de contenidos  django.contrib.sessions  Un framework para manejar sesiones DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'mysite.db', } } Python para desarrolladores web
  10. Django ORM 10 Python para desarrolladores web

  11. Django Templates 11  Templates are composed by Blocks Python

    para desarrolladores web
  12. Django example project 12 Python para desarrolladores web

  13. Django example project 13 Python para desarrolladores web

  14. Django-oscar 14 http://oscarcommerce.com https://github.com/django-oscar/django-oscar Python para desarrolladores web

  15. Flask 15  Microframework  Built in development server and

    debugger  Oriented to small applications with simpler requirements. Python para desarrolladores web
  16. Flask example 16 Python para desarrolladores web

  17. Flask 17 Python para desarrolladores web

  18. Flask 18 Python para desarrolladores web http://httpbin.org

  19. Pyramid 19  Python3 compatible  Templates with Chamaleon 

    Like django has his own bootstraping toolpcreate Python para desarrolladores web
  20. Pyramid 20 pcreate -s starter hello_pyramid ├── CHANGES.txt ├── development.ini

    ├── MANIFEST.in ├── production.ini ├── hello_pyramid │ ├── __init__.py │ ├── static │ │ ├── pyramid-16x16.png │ │ ├── pyramid.png │ │ ├── theme.css │ │ └── theme.min.css │ ├── templates │ │ └── mytemplate.pt │ ├── tests.py │ └── views.py ├── README.txt └── setup.py Python para desarrolladores web
  21. Pyramid Learn REST API with Python in 90 minutes 21

  22. Pyramid 22 Python para desarrolladores web Pserve development.ini

  23. Pyramid 23 https://badges.fedoraproject.org https://github.com/fedora-infra/tahrir Python para desarrolladores web

  24. Comparing web frameworks 24 Django Pyramid Flask ORM Django- ORM

    Bootstrapping django- admin pcreate Templates Chameleon Migrations Admin interface Visual debug Python para desarrolladores web
  25. Requests Module  Python’s standard urllib2,httplib module provides most of

    the HTTP capabilities you need, but the API is thoroughly broken.  Python HTTP: Requests. Beautiful, simple, Pythonic. 25 http://www.python-requests.org Python para desarrolladores web
  26. Use requests module  Install requests module (pip install requests)

    http://docs.python-requests.org/en/latest/user/install/#install  Use it interactive mode $ python >>> import requests >>> r = requests.get("http://httpbin.org/get") 26 Python para desarrolladores web
  27. Use requests module 27 Python para desarrolladores web

  28. Use requests module 28 Python para desarrolladores web

  29. Beautiful Soup 29  Librería que permite el parseo de

    páginas web  Soporta parsers como lxml,html5lib  Instalación  pip install lxml  pip instlal html5lib  pip install beautifulsoup4 Python para desarrolladores web
  30. Obtain links with bs4 30 Python para desarrolladores web

  31. Obtain links with bs4 31 Python para desarrolladores web

  32. Extract images with lxml 32 import requests from lxml import

    html Python para desarrolladores web
  33. Extract program 33 Python para desarrolladores web

  34. JSON in python 34  import json  json_dumps(data, sort_keys=True)

     Maybe allow human readable output  json_dumps(data, sort_keys=True, indent=4) Python para desarrolladores web
  35. Scrapy 35 Python para desarrolladores web

  36. Scrapy / pip install scrapy Learn REST API with Python

    in 90 minutes 36
  37. Scrapy shell 37 scrapy shell <url> from scrapy. import Selector

    hxs = Selector(response) Info = hxs.select(‘//div[@class=“slot-inner”]’) Python para desarrolladores web
  38. Scrapy shell 38 Python para desarrolladores web

  39. Scrapy spiders 39 Python para desarrolladores web

  40. Scrapy spiders 40 $ scrapy crawl <spider_name> $ scrapy crawl

    <spider_name> -o items.json -t json $ scrapy crawl <spider_name> -o items.csv -t csv $ scrapy crawl <spider_name> -o items.xml -t xml Python para desarrolladores web
  41. Twisted 41  Event-driven networking engine  Procesar eventos de

    forma asíncrona  https://twistedmatrix.com Python para desarrolladores web
  42. Bokeh 42  Interactive, browser-based visualization for big data, driven

    from Python  http://bokeh.pydata.org  Rich interactivity over large datasets  HTML5 Canvas  Integration with Google Maps  http://bokeh.pydata.org/en/latest/docs/gallery.html Python para desarrolladores web
  43. Bokeh 43 Python para desarrolladores web

  44. Bokeh Google maps 44 Python para desarrolladores web

  45. Bokeh Google maps 45 Python para desarrolladores web

  46. Javascript code generation 46 Python para desarrolladores web

  47. Bokeh charts 47 Python para desarrolladores web

  48. API Rest in Python 48  Django Rest Framework (DRF)

    pip install djangorestframework Python para desarrolladores web
  49. Django Rest Framework 49 Serializers & Views Python para desarrolladores

    web class PostSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Post fields = ('author', 'title', 'text', 'created_date','published_date') class PostViewSet(viewsets.ModelViewSet): queryset = Post.objects.all() serializer_class = PostSerializer from rest_framework import routers, serializers, viewsets
  50. Django Rest Framework 50 Urls Python para desarrolladores web

  51. Django Rest Framework 51 Python para desarrolladores web

  52. Twitter API 52  https://apps.twitter.com  Oauth2  Consumer API

    (API KEY)  Consumer Secret (API Secret)  Access Token  Access Token Secret Python para desarrolladores web
  53. Twitter API 53  Python-twitter  https://github.com/bear/python-twitter  Tweepy 

    https://github.com/tweepy/tweepy Python para desarrolladores web
  54. Tweepy 54 import tweepy from tweepy import OAuthHandler consumer_key =

    'YOUR-CONSUMER-KEY' consumer_secret = 'YOUR-CONSUMER-SECRET' access_token = 'YOUR-ACCESS-TOKEN' access_secret = 'YOUR-ACCESS-SECRET' auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_secret)  api = tweepy.API(auth) Python para desarrolladores web
  55. Tweepy Learn REST API with Python in 90 minutes 55

     Timeline  Tweet list  Trending topic for status in tweepy.Cursor(api.home_timeline).items(10): print(status.text) for tweet in tweepy.Cursor(api.user_timeline).items(): process_or_store(tweet._json) def getTrends(): trends = api.trends_place(1)[0]['trends'] return trends
  56. Python-twitter 56 import twitter apiTwitter = twitter.Api(consumer_key="xxx", consumer_secret="xxx", access_token_key="xxx", access_token_secret="xxx")

    query = apiTwitter.GetSearch("#T3chFest2016“,count=50) for result in query: tweet = {} tweet['text'] = result.text.encode('utf-8') tweet['date'] = result.created_at.encode('utf-8') tweet['favorite_count'] = result.favorite_count tweet['lang'] = result.lang.encode('utf-8') tweet['retweet_count'] = result.retweet_count tweet['account'] = result.user.screen_name.encode('utf-8') twitter_results.append(tweet) Python para desarrolladores web
  57. 57 Python para desarrolladores web Python-twitter

  58. Python-twitter 58 outfile = open('twitter.json','wb') for twitter_result in twitter_results: line

    = json.dumps(twitter_result) + "\n" outfile.write(line) Python para desarrolladores web
  59. Python in the cloud 59 Python para desarrolladores web

  60. Python in the cloud 60 Python para desarrolladores web

  61. Python in the cloud 61 Python para desarrolladores web

  62. Git  https://github.com/jmortega/t3chfest_python_examples 62 Python para desarrolladores web

  63. References  Django project: http://www.djangoproject.com  Flask: http://flask.pocoo.org  Pyramid:

    http://www.pylonsproject.org  Requests python module: http://www.python-requests.org  BeautifulSoup: http://www.crummy.com/software/BeautifulSoup  Bokeh:http://bokeh.pydata.org  Django Rest:http://www.django-rest-framework.org  https://www.pythonanywhere.com 63 Python para desarrolladores web
  64. Thank you! José Manuel Ortega <@jmortegac>