SlideShare uma empresa Scribd logo
1 de 27
Desenvolvimento de web apps
com Flask & MongoDB.
O que é um CMS e para quê serve?
- Sistema para Publicação de Contéudo.
- Conteúdo é tudo que tenha:
URL, Categorização, Data de Publicação, Autor, Controle e Stats de Acesso.
- Textos, Postagens ou Notícias, Videos, Fotos, Documentos, Produtos,
Perfis, Fichas de cadastro, etc.
Ahh Wordpress?
é! Só Que Não!
- PHP
(precisa falar mais alguma
coisa?)
- Sistema de Plugins de alto
acoplamento
- Gambiarras para customizar.
- Banco Relacional
(Alter Table Hell)
- Not Pythonic :)
- We Love Python
- We Love Flask
- We are Developers
Mas Python Já tem
muitos CMS!
Pra quê outro?
(Django CMS, Mezannine, Wagtail, Pelican…)
1. Banco de Dados não relacional é melhor para CMS!
2. Não existe outro CMS completo escrito em Flask!
3. We love Flask! <3
4. Utilizar as melhores idéias do Plone, mas sem o Zope! :)
Show me the Quokka!
Features
- Admin
- Controle de Acesso
(users and groups)
- URLS amigaveis
- Feed RSS
- Cache
- Temas para Front-End
- Skins para Admin
- Editor HTML Summernote
- Editor Markdown
- Sistema de Plugins Plug&Use
Como criar apps?
# models.py
from quokka.core.db import db
from quokka.core.models import Content
class Game(Content):
data_of_launch = db.DateField()
version = db.IntField()
quokka/modules/games/
# __init__.py
from quokka.core.app import QuokkaModule
module = QuokkaModule("games", __name__)
module.base_channel = "games"
http://localhost:5000/games
# admin.py
from quokka.core.admin.models import ModelAdmin
from quokka import admin
from .models import Game
admin.register(Game, ModelAdmin, category="content")
http://github.com/quokkaproject/quokka-fundraising
http://github.com/quokkaproject/quokka-cart
http://github.com/quokkaproject/quokka-classes
https://github.com/quokkaproject/theme_material
Como colaborar?
Precisamos de
Ajuda!!!!
Todo tipo de ajuda!
http://github.com/quokkaproject
Documentação
Testes
Front-end
Plugins/apps
Bugs
Cases
Criticas e Sugestões

Mais conteúdo relacionado

Mais procurados

Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Adler Medrado
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Celso Fernandes
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
Fernando Camargo
 

Mais procurados (20)

Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começo
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMS
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.com
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Principais Tecnologias WEB
Principais Tecnologias WEBPrincipais Tecnologias WEB
Principais Tecnologias WEB
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconDesenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
 
Técnicas de frontend para aplicações django - PythonBrasil[9]
Técnicas de frontend para aplicações django  - PythonBrasil[9]Técnicas de frontend para aplicações django  - PythonBrasil[9]
Técnicas de frontend para aplicações django - PythonBrasil[9]
 
firefox-os-front-end
firefox-os-front-endfirefox-os-front-end
firefox-os-front-end
 

Destaque

Flask patterns
Flask patternsFlask patterns
Flask patterns
it-people
 
Build website in_django
Build website in_django Build website in_django
Build website in_django
swee meng ng
 
Making use of OpenStreetMap data with Python
Making use of OpenStreetMap data with PythonMaking use of OpenStreetMap data with Python
Making use of OpenStreetMap data with Python
Andrii Mishkovskyi
 

Destaque (16)

Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
 
Flask patterns
Flask patternsFlask patterns
Flask patterns
 
Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CIPython Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CI
 
Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Flask for CMS/App Framework development.
Flask for CMS/App Framework development.
 
Build website in_django
Build website in_django Build website in_django
Build website in_django
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Python and GIS
Python and GISPython and GIS
Python and GIS
 
Writing your first web app using Python and Flask
Writing your first web app using Python and FlaskWriting your first web app using Python and Flask
Writing your first web app using Python and Flask
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014
 
Desenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonDesenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com Python
 
Making use of OpenStreetMap data with Python
Making use of OpenStreetMap data with PythonMaking use of OpenStreetMap data with Python
Making use of OpenStreetMap data with Python
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
 
OpenStreetMap in 3D using Python
OpenStreetMap in 3D using PythonOpenStreetMap in 3D using Python
OpenStreetMap in 3D using Python
 

Semelhante a Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015

4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
RubenManhia
 
Apache PHP MySQL
Apache  PHP  MySQLApache  PHP  MySQL
Apache PHP MySQL
kisb1337
 

Semelhante a Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015 (20)

Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)
 
Curso de WordPress
Curso de WordPressCurso de WordPress
Curso de WordPress
 
Leonardo g
Leonardo gLeonardo g
Leonardo g
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1WordPress: De blogs pessoais a grandes portais - Parte 1
WordPress: De blogs pessoais a grandes portais - Parte 1
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Oficina Joomla para Iniciantes
Oficina Joomla para IniciantesOficina Joomla para Iniciantes
Oficina Joomla para Iniciantes
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Front-end 001
Front-end 001Front-end 001
Front-end 001
 
Joomla! Cms Poderoso e Flexivel (Gerenciamento de Sites)
Joomla!  Cms Poderoso e Flexivel (Gerenciamento de Sites)Joomla!  Cms Poderoso e Flexivel (Gerenciamento de Sites)
Joomla! Cms Poderoso e Flexivel (Gerenciamento de Sites)
 
Curso de Joomla!
Curso de Joomla!Curso de Joomla!
Curso de Joomla!
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Apache PHP MySQL
Apache  PHP  MySQLApache  PHP  MySQL
Apache PHP MySQL
 
Mini Curso Mashup Coreu
Mini Curso Mashup CoreuMini Curso Mashup Coreu
Mini Curso Mashup Coreu
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
 
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 4 - 1...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 4 - 1...Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 4 - 1...
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 4 - 1...
 
Curso de-joomla
Curso de-joomlaCurso de-joomla
Curso de-joomla
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 

Mais de Bruno Rocha

Mais de Bruno Rocha (8)

Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
 
Carreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de TrabalhoCarreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de Trabalho
 
Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014
 
What The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsWhat The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIs
 
Guia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultosGuia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultos
 
Using web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksUsing web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworks
 

Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015

  • 1. Desenvolvimento de web apps com Flask & MongoDB.
  • 2. O que é um CMS e para quê serve? - Sistema para Publicação de Contéudo. - Conteúdo é tudo que tenha: URL, Categorização, Data de Publicação, Autor, Controle e Stats de Acesso. - Textos, Postagens ou Notícias, Videos, Fotos, Documentos, Produtos, Perfis, Fichas de cadastro, etc.
  • 3. Ahh Wordpress? é! Só Que Não! - PHP (precisa falar mais alguma coisa?) - Sistema de Plugins de alto acoplamento - Gambiarras para customizar. - Banco Relacional (Alter Table Hell) - Not Pythonic :) - We Love Python - We Love Flask - We are Developers
  • 4. Mas Python Já tem muitos CMS! Pra quê outro? (Django CMS, Mezannine, Wagtail, Pelican…)
  • 5. 1. Banco de Dados não relacional é melhor para CMS! 2. Não existe outro CMS completo escrito em Flask! 3. We love Flask! <3 4. Utilizar as melhores idéias do Plone, mas sem o Zope! :)
  • 6. Show me the Quokka!
  • 7.
  • 8.
  • 9. Features - Admin - Controle de Acesso (users and groups) - URLS amigaveis - Feed RSS - Cache - Temas para Front-End - Skins para Admin - Editor HTML Summernote - Editor Markdown - Sistema de Plugins Plug&Use
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21. # models.py from quokka.core.db import db from quokka.core.models import Content class Game(Content): data_of_launch = db.DateField() version = db.IntField() quokka/modules/games/ # __init__.py from quokka.core.app import QuokkaModule module = QuokkaModule("games", __name__) module.base_channel = "games" http://localhost:5000/games # admin.py from quokka.core.admin.models import ModelAdmin from quokka import admin from .models import Game admin.register(Game, ModelAdmin, category="content")
  • 27. Precisamos de Ajuda!!!! Todo tipo de ajuda! http://github.com/quokkaproject Documentação Testes Front-end Plugins/apps Bugs Cases Criticas e Sugestões