Este documento apresenta o framework Django para desenvolvimento web ágil com Python. Ele introduz o palestrante e sua experiência com programação, explica o que é o Django e suas principais funcionalidades como internacionalização, autenticação, permissões e administração. Por fim, fornece links úteis sobre Python, Django e seus respectivos sites e comunidades brasileiras.
Aprender uma linguagem de programação costuma ser uma tarefa que leva muito tempo. Mas na realidade, os conceitos básicos podem ser vistos de forma concisa em pouco tempo. Nessa palestra visamos mostrar isso com Python, uma linguagem de programação extremamente versátil e poderosa, que possibilita desde trabalhar no terminal até mesmo fazer sites! Em 40 minutos mostraremos o básico da sintaxe de Python, de forma a incentivar o primeiro passo de jovens programadores!
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019Jerônimo Medina Madruga
Desenvolvendo Jogos com PyGame
Jogar todo mundo joga. Programar, todo mundo pode. Jogar todo mundo treina. Programar, nem tanto. Mas para jogar é necessário que alguém desenvolva suas habilidades de programador. Nesse bate papo, porque ninguém mais tem paciência para palestras, será apresentada uma forma divertida de desenvolver a programação e conhecer a linguagem Python, construindo jogos, utilizando a biblioteca Pygame e ferramentas open source para desenvolver um jogo.
Jerônimo Medina Madruga
Jerônimo Medina Madruga trabalha com suporte técnico e treinamento para educação a distância da Universidade Federal de Pelotas (UFPel). Tem formação em Técnico em Eletrônica pelo Instituto Federal Sul-Rio-Grandense (IFSUL), Tecnólogo em Marketing pelo Centro Universitário de Maringá (UniCesumar) e é ocasionalmente atuante em grupos ligados a divulgação e desenvolvimento de software livre. Já realizou mais de 70 palestras em eventos internacionais, nacionais e regionais, sobre os temas mais variados possíveis, normalmente ligados a educação, programação, comunidades, CMS e administração de sistemas.
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
Jogar todo mundo joga. Programar, todo mundo pode. Jogar todo mundo treina. Programar, nem tanto. Mas para jogar é necessário que alguém desenvolva suas habilidades de programador. Nesse bate papo, porque ninguém mais tem paciência para palestras, será apresentada uma forma divertida de desenvolver a programação e conhecer a linguagem Python, construindo jogos, utilizando a biblioteca Pygame e ferramentas open source para desenvolver um jogo.
Jerônimo Medina Madruga trabalha com suporte técnico e treinamento para educação a distância da Universidade Federal de Pelotas (UFPel). Tem formação em Técnico em Eletrônica pelo Instituto Federal Sul-Rio-Grandense (IFSUL) e é ocasionalmente atuante em grupos ligados a divulgação e desenvolvimento de software livre. Já realizou mais de 70 palestras em eventos internacionais, nacionais e regionais, sobre os temas mais variados possíveis, normalmente ligados a educação, programação, comunidades, CMS e administração de sistemas.
Para mais informações:
https://www.linkedin.com/in/jmmadruga/
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Jerônimo Medina Madruga
A maioria dos métodos para aprender programação envolvem operações matemáticas e lógicas, o que não é muito atraente para muita gente, afinal nem todos acham incrível quando finalmente conseguem fazer um merge sorte ou uma árvore binária... Então, que tal tentar algo diferente, como juntar música e programação? Nessa palestra será apresentado Sonic Pi, um sintetizador digital que permite que as pessoas criem música como se estivessem programando! A ideia é mostrar como instalar e configurar a ferramenta, e por fim fazer um pouco de rock & roll com código!
Aprender uma linguagem de programação costuma ser uma tarefa que leva muito tempo. Mas na realidade, os conceitos básicos podem ser vistos de forma concisa em pouco tempo. Nessa palestra visamos mostrar isso com Python, uma linguagem de programação extremamente versátil e poderosa, que possibilita desde trabalhar no terminal até mesmo fazer sites! Em 40 minutos mostraremos o básico da sintaxe de Python, de forma a incentivar o primeiro passo de jovens programadores!
PyGame Over: Insert coins to learn with Python - Tchelinux Porto Alegre 2019Jerônimo Medina Madruga
Desenvolvendo Jogos com PyGame
Jogar todo mundo joga. Programar, todo mundo pode. Jogar todo mundo treina. Programar, nem tanto. Mas para jogar é necessário que alguém desenvolva suas habilidades de programador. Nesse bate papo, porque ninguém mais tem paciência para palestras, será apresentada uma forma divertida de desenvolver a programação e conhecer a linguagem Python, construindo jogos, utilizando a biblioteca Pygame e ferramentas open source para desenvolver um jogo.
Jerônimo Medina Madruga
Jerônimo Medina Madruga trabalha com suporte técnico e treinamento para educação a distância da Universidade Federal de Pelotas (UFPel). Tem formação em Técnico em Eletrônica pelo Instituto Federal Sul-Rio-Grandense (IFSUL), Tecnólogo em Marketing pelo Centro Universitário de Maringá (UniCesumar) e é ocasionalmente atuante em grupos ligados a divulgação e desenvolvimento de software livre. Já realizou mais de 70 palestras em eventos internacionais, nacionais e regionais, sobre os temas mais variados possíveis, normalmente ligados a educação, programação, comunidades, CMS e administração de sistemas.
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
Jogar todo mundo joga. Programar, todo mundo pode. Jogar todo mundo treina. Programar, nem tanto. Mas para jogar é necessário que alguém desenvolva suas habilidades de programador. Nesse bate papo, porque ninguém mais tem paciência para palestras, será apresentada uma forma divertida de desenvolver a programação e conhecer a linguagem Python, construindo jogos, utilizando a biblioteca Pygame e ferramentas open source para desenvolver um jogo.
Jerônimo Medina Madruga trabalha com suporte técnico e treinamento para educação a distância da Universidade Federal de Pelotas (UFPel). Tem formação em Técnico em Eletrônica pelo Instituto Federal Sul-Rio-Grandense (IFSUL) e é ocasionalmente atuante em grupos ligados a divulgação e desenvolvimento de software livre. Já realizou mais de 70 palestras em eventos internacionais, nacionais e regionais, sobre os temas mais variados possíveis, normalmente ligados a educação, programação, comunidades, CMS e administração de sistemas.
Para mais informações:
https://www.linkedin.com/in/jmmadruga/
Rock 'n' Code - Como criar música programando - Tchelinux Camaquã 2019Jerônimo Medina Madruga
A maioria dos métodos para aprender programação envolvem operações matemáticas e lógicas, o que não é muito atraente para muita gente, afinal nem todos acham incrível quando finalmente conseguem fazer um merge sorte ou uma árvore binária... Então, que tal tentar algo diferente, como juntar música e programação? Nessa palestra será apresentado Sonic Pi, um sintetizador digital que permite que as pessoas criem música como se estivessem programando! A ideia é mostrar como instalar e configurar a ferramenta, e por fim fazer um pouco de rock & roll com código!
O novo ASP.NET - GDG-SP - Outubro/2016Renato Groff
Slides de apresentação sobre ASP.NET Core 1.0 realizada em 19/10/2016 em um evento promovido pelo GDG-SP.
Alguns dos tópicos abordados: Tag Helpers, View Components, Injeção de Dependência, suporte multiplataforma.
Apresentação sobre como criar aplicações multiplataforma e mobile utilizando o framework gráfico Kivy.
A palestra foi ministrada na conferência Python Nordeste 2016 em Teresina Piauí, dia 11 de junho de 2016.
O novo ASP.NET - PUC Developers Day - 2016Renato Groff
Apresentação sobre ASP.NET Core 1.0 realizada em 20/08/2016, durante o evento PUC Developers Day.
Tópicos:
- Principais características do ASP.NET Core 1.0
- Alguns exemplos práticos
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPRenato Groff
Apresentação sobre ASP.NET Core 1.0 realizada em 18/09/2016, durante a edição local do dotnetConf em Santos-SP.
Tópicos:
- Principais características do ASP.NET Core 1.0
- Alguns exemplos práticos
Presentation about Python and Games for Python Brasil 11 Conference.
Here I present many game engines and it's characteristics, with the intention to show that there's lots of options to create games with Python.
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?Mayron Cachina
A alta procura por desenvolvimento mobile é uma tendencia no mercado. Mais como desenvolver uma solução para diversos aparelhos em um curto espaço de tempo sem ter que aprender Java, Objective-C ou qualquer outra linguagem a não ser HTML, CSS e Java Script.
Essas são as chamadas soluções de desenvolvimento hibrido. Iremos falar um pouco do Phonegap, de sua utilidade, minha experiência desenvolvendo com esse framework e tirar dúvidas para os programadores que querem iniciar nesse mundo.
#DevCast realizado no dia 13/08/2013 - https://www.facebook.com/events/499324213495297/501508023276916/
Slides de introdução, utilizados no mini-curso "O PHP como deveria ser".
Os slides contém apenas a introdução do palestrante "Vinicius Dias" e uma lista de grandes projetos em PHP
Aumente as possibilidades de distribuição da sua aplicação, partindo de um projeto em WordPress você tem a possibilidade construir um aplicativo e consumir os dados existentes
O novo ASP.NET - GDG-SP - Outubro/2016Renato Groff
Slides de apresentação sobre ASP.NET Core 1.0 realizada em 19/10/2016 em um evento promovido pelo GDG-SP.
Alguns dos tópicos abordados: Tag Helpers, View Components, Injeção de Dependência, suporte multiplataforma.
Apresentação sobre como criar aplicações multiplataforma e mobile utilizando o framework gráfico Kivy.
A palestra foi ministrada na conferência Python Nordeste 2016 em Teresina Piauí, dia 11 de junho de 2016.
O novo ASP.NET - PUC Developers Day - 2016Renato Groff
Apresentação sobre ASP.NET Core 1.0 realizada em 20/08/2016, durante o evento PUC Developers Day.
Tópicos:
- Principais características do ASP.NET Core 1.0
- Alguns exemplos práticos
O novo ASP.NET - dotnetConf.Local 2016 - Santos-SPRenato Groff
Apresentação sobre ASP.NET Core 1.0 realizada em 18/09/2016, durante a edição local do dotnetConf em Santos-SP.
Tópicos:
- Principais características do ASP.NET Core 1.0
- Alguns exemplos práticos
Presentation about Python and Games for Python Brasil 11 Conference.
Here I present many game engines and it's characteristics, with the intention to show that there's lots of options to create games with Python.
[#DevCast] Quero Desenvolver para phonegap, e agora? O que eu faço?Mayron Cachina
A alta procura por desenvolvimento mobile é uma tendencia no mercado. Mais como desenvolver uma solução para diversos aparelhos em um curto espaço de tempo sem ter que aprender Java, Objective-C ou qualquer outra linguagem a não ser HTML, CSS e Java Script.
Essas são as chamadas soluções de desenvolvimento hibrido. Iremos falar um pouco do Phonegap, de sua utilidade, minha experiência desenvolvendo com esse framework e tirar dúvidas para os programadores que querem iniciar nesse mundo.
#DevCast realizado no dia 13/08/2013 - https://www.facebook.com/events/499324213495297/501508023276916/
Slides de introdução, utilizados no mini-curso "O PHP como deveria ser".
Os slides contém apenas a introdução do palestrante "Vinicius Dias" e uma lista de grandes projetos em PHP
Aumente as possibilidades de distribuição da sua aplicação, partindo de um projeto em WordPress você tem a possibilidade construir um aplicativo e consumir os dados existentes
Contribuir com o django é mais simples do que voce imagina!Vinta Software
Se você conhece ou trabalha com o Django e deseja saber como começar a contribuir está palestra é para você!
Juntos vamos solucionar um bug do django e fazer nossa primeira contribuição!
Para quem está começando a desenvolver sistemas e deseja fazer contribuições open source, as vezes é difícil saber por onde começar.
A idéia de contribuir com uma grande lib que você adora parece um pouco assustadora?
Eu vou mostrar passo a passo, como contribuir com o django de forma simples!
Usaremos um bug previamente resolvido por mim, para explicar o passo a passo.
12/2017 - Ministrei palestra com o tema: “Aplicativos Móveis: PWA, Instants Apps. Vamos entender?”, durante o Alagoas Developers, realizado na Faculdade da Cidade de Maceió - FACIMA.
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Jerônimo Medina Madruga
Jogar todo mundo joga. Programar, todo mundo pode. Jogar todo mundo treina. Programar, nem tanto. Mas para jogar é necessário que alguém desenvolva suas habilidades de programador. Nesse bate papo, porque ninguém mais tem paciência para palestras, será apresentada uma forma divertida de desenvolver a programação e conhecer a linguagem Python, construindo jogos, utilizando a biblioteca Pygame e ferramentas open source para desenvolver um jogo.
Jerônimo Medina Madruga trabalha com suporte técnico e treinamento para educação a distância da Universidade Federal de Pelotas (UFPel). Tem formação em Técnico em Eletrônica pelo Instituto Federal Sul-Rio-Grandense (IFSUL) e é ocasionalmente atuante em grupos ligados a divulgação e desenvolvimento de software livre. Já realizou mais de 70 palestras em eventos internacionais, nacionais e regionais, sobre os temas mais variados possíveis, normalmente ligados a educação, programação, comunidades, CMS e administração de sistemas.
Para mais informações:
https://www.linkedin.com/in/jmmadruga/
Do zero ao Python em 40 minutos! - Jerônimo Medina Madruga - Tchelinux Pelota...Tchelinux
Aprender uma linguagem de programação costuma ser uma tarefa que leva muito tempo. Mas na realidade, os conceitos básicos podem ser vistos de forma concisa em pouco tempo. Nessa palestra visamos mostrar isso com Python, uma linguagem de programação extremamente versátil e poderosa, que possibilita desde trabalhar no terminal até mesmo fazer sites! Em 40 minutos mostraremos o básico da sintaxe de Python, de forma a incentivar o primeiro passo de jovens programadores!
2. Quem sou eu?
✔ Me chamo Bruno Barbosa
✔ Programo por diversão há 13 anos
✔ “ profissionalmente há 6 anos
✔ Atualmente: Desenvolvedor Web pela Fundação
COPPETEC - COPPE / UFRJ
69. Links úteis
● Site oficial da linguagem Python: www.python.org
● Comunidade Python Brasil:
https://groups.google.com/forum/#!forum/python-brasil
● Site oficial do Django: www.djangoproject.com
● Comunidade Django Brasil:
https://groups.google.com/forum/#!forum/django-brasil
● Tutorial oficial do Django:
https://docs.djangoproject.com/pt-br/1.10/intro/tutorial01/
● Tutorial Django Girls: https://tutorial.djangogirls.org/pt/
Atualmente vivemos um tempo de pressa, urgências, prazos... correria total... cada vez mais precisamos das coisas para ontem...
E essa pressa atingiu o desenvolvimento de software, surgiram bibliotecas, frameworks... as pessoas estão sempre em busca de como desenvolver aplicações web em tempo recorde, mais rapido que todo mundo, para conquistar os clientes...
Sabendo disso.. vamos para um estudo de caso fake =)
Eis que nossa cliente, precisa de um “sisteminha simples” (porque todo cliente sempre dirá que precisa de apenas um “sisteminha”), de notícias, enquetes, com login em um sistema administrativo onde ela possa gerenciar esses dados..
Dinheiro não é problema para nossa cliente, mas...
Ela tem prazo para o sistema ficar pronto!
Diferente do gif, nós não podemos simplesmente alterar a data do calendário e ganhar mais alguns dias..
Ela buscou outras duas empresas antes de encontrar você... a primeira deu um prazo de 35 dias para entrega... a segunda 30, mas ela precisa que o sistema esteja pronto em 20 dias! Isso mesmo, 20 dias!!!
Eis que você... amante do dinheiro, mestre da usabilidade, h4ck3r das galaxias... topa o projeto!
Você é esperto! Afinal é um Full Stack Overflow Developer! Conhece vários sites com snippets de código prontos, mamão com açúcar! Baixa tudo, copia aqui, cola ali... faz uns ajustes acolá... traduz os english, junta tudo e....
Tcharaaaaaam..... em 10 dias... APENAS 10 DIAS!!! Em 10 dias o código está pronto! É o teclado mais rápido do oeste!!!
Ele fica realmente impressionado em te ver lá DEZ dias depois… Você terminou! Ele precisava da aplicação em 20 dias, você fez na metade do tempo!
A melhor proposta que ele recebeu antes de você era de 30 dias. Você foi três vezes mais rápido do que a melhor proposta
O seu cliente tem plena certeza de que você é o cara mais rápido do mundo. E você provavelmente é!
O problema é que não é só a velocidade que importa...
Depois de ver a aplicação “funcionando”, o seu cliente não mudou de ideia… ele continua te achando o mais rápido…
O título de teclado rápido do Oeste é seu, você é o mais rápido em escrever código. Mas desenvolver software não é só escrever código, não é só correr para escrever mais código em menos tempo. Desenvolver software envolve pensar!
Você é o número 1 de velocidade, você é realmente bom em algo, mas seu cliente precisava de um produto de qualidade…
E o problema é que ser melhor em algo que não é importante nem sempre é bom, e quando é bom...
É bom só para você… :P
A satisfação do cliente é fundamental… e para ajudar a atingir esse objetivo eu apresento a vocês...
DJANGO!!!
…
Mas não esse django… xD
Esse Django! O Framework Web para perfeccionistas com prazos!
Desenvolvedores que conhecem e respeitam os prazos, mas respeitam, acima de tudo, a qualidade do produto a ser desenvolvido!
Mas antes de seguirmos em frente, quero rapidamente conhecer vocês…
Quem aqui conhece ou tem experiência com:
- O básico de Python?
- Alguma linguagem de programação?
- Desenvolvimento Web?
- Estrutura de funcionamento da web (protocolo HTTP, request, response…)?
- Django?
Bem… vamos continuar…
Django!
A essa hora vocês devem estar cheios de perguntas tipo… django!? O que é isso? De comer ou beber? Perfeccionistas com prazos? E aquele pônei???
Esse é o Django pony, mascote não oficial do Django...
Velho conhecido da comunidade Python, não muito raro o vemos por aí nas conferências de desenvolvimento de software apresentando palestras de altíssimo nível...
Mas é importante respeitar o Django Pony, pois ele pode te atacar repentinamente!
E os ataques dele são mortais!!!
Qual é a relação entre um pônei rosa e um framework web?
Magia! :)
É isso? …
Bom, vamos ao que interessa…
Já temos um cliente insatisfeito, eu já conheço vocês, vocês já conhecem um pônei rosa, tá na hora de conhecer esse tal de Django né?!
O Django é um framework, uma caixa de ferramentas à sua disposição para construir aplicações web de qualidade em tempo recorde.
O Django foi criado para o portal do Lawrence Journal World, um jornal da cidade de Lawrence, no estado do Kansas, nos Estados Unidos.
O framework ganhou popularidade, foi crescendo, e hoje vem sendo usado em projetos de todo tamanho, principalmente os de larga escala pelas mais variadas empresas
Sabemos que Django é como se fosse uma caixa de ferramentas.. vamos olhar dentro dela para descobrirmos o que há lá e a entendermos melhor.. =)
Django é orientado a aplicações, aplicações plugáveis.
Você tem blocos de montar que integram-se para a construção dos seus projetos. Você encontra várias aplicações reusáveis na internet.
E você pode montar esses blocos com muita facilidade. Django é fácil, e lhe permite caminhar por um caminho de qualidade com relativa facilidade.
Se o seu projeto vai usar n aplicações plugáveis ou você vai desenvolver todas “no braço”, você certamente não encontrará tanta dificuldade e você provavelmente vai se divertir.
Open source: Django é open source, pertence à comunidade, é meu, é seu.
Se você acha que Django tem um problema, você pode reportá-lo e até corrigi-lo. Você pode fazer um fork do Django para adequá-lo à sua necessidade, ou qualquer coisa do tipo :)
O Django é baseado no modelo MVC, um modelo de arquitetura de sistemas baseado em três camadas, uma para o modelo de dados (model), uma para a lógica de negócios (controller) e a última para a visualização dos dados (view).
Todo mundo aqui sabe o que é o padrão MVC?
Pois bem.. para ser mais exato, o Django não usa exatamente o padrão MVC, ele usa o...
MTV: Model, Template e View
Mas não se preocupe, isso só é diferente mesmo na nomenclatura, no fundo é tudo a mesma coisa…
Os Models ficam com o banco de dados, as Views representam os controllers e o Template a visualização do resultado para o usuário.
Essa é a estrutura completa de funcionamento de um request/response no Django…
Mas não é importante agora entender isso.. =)
Essa é uma estrutura mais simples, útil o suficiente para nosso exemplo…
Aqui conseguimos visualizar o fluxo do que acontece do momento que o usuário acessa uma página de um sistema feito em Django…
Vamos por partes...
A página a ser acessada está na URL /livros. O cliente faz então a requisição em /livros.
Neste momento o módulo de URLs do Django entra em ação para detectar qual a view responsável por tratar o acesso à URL /livros.
A URL /livros está mapeada para a view listar_livros. Uma linha de código e esta URL está mapeada utilizando expressões regulares.
Uma view é uma função, a função listar_livros vai receber nosso request e tratá-lo para retornar um response.
Trata-se de um ponto “polêmico” do Django. No Django, uma view faz um trabalho semelhante ao trabalho feito por controllers em outros frameworks. Mas não se espante, não vamos escrever nenhum select na camada de interface ou injetar lógica de negócio lá.
O que acontece no Django é que a camada de interface não se chama view, e só. Enxergue apenas como uma questão de nomenclatura :)
A primeira linha da nossa função view faz uma chamada a uma classe Livro, um model. Um objeto que representa, no nosso sistema, o livro verdadeiramente falando. Esta classe também é responsável por fazer a comunicação com o banco de dados, então aqui estamos buscando todos os livros armazenados no banco de dados.
O código da classe é bem explicativo: mostra que um livro é um Model e tem um título.
Não importa o banco de dados.
O Django é capaz de lidar com inúmeros bancos de dados, e é bem provável que pra você não seja muito importante o que está abaixo da camada de modelo. A menos que você tenha um sistema muito grande.
Vamos voltar então à nossa view, que tem duas linhas de código. Já temos a lista de livros “em mãos”, agora podemos entregar ela para o nosso cliente, certo?
Antes, entregamos ao template engine do Django que processa tudo isso e gera a saída para o nosso cliente.
A saída não é tão bonita, mas você vai poder contar com um designer esperto pra te ajudar com isso :)
E agora você pode entender de onde vem o MTV :)
E tem mais uma coisa que talvez você não tenha percebido ainda...
Com seis linhas de código Python…
cinco linhas de código da template engine do Django
e NENHUMA linha SQL nós construímos uma listagem com todos os registros de uma entidade no banco de dados.
É lindo não é? =)
Vocês veem… parece mágica =)
Mais uma coisa...
O Django suporta múltiplos bancos de dados, ele possui um ORM (Object-Relational Mapping) onde ele traduz código python para instruções SQL
Django tem um framework de internacionalização extremamente simples de utilizar, que usa o gettext para traduzir termos.
Escrever aplicações em vários idiomas no Django é brincadeira de criança.
Django também tem autenticação integrada, com cadastro de usuários e grupos, e gerenciamento de permissões.
Com mais uma linha de código, um simples decorator, poderíamos exigir que o usuário estivesse logado para ver a lista de livros.
Junto ao cadastro de usuários, o sistema de autenticação do Django também integra controle de permissão.
Trocando o login_required por permission_required, podemos criar uma permissão específica e dizer que apenas usuários ou grupos de usuários específicos teriam acesso àquela view.
Mais uma coisa...
E eu ainda não falei do Django Admin! =)
Com mais algumas linhas de código temos uma interface administrativa completa com as operações mais comuns de CRUD
Algumas telas do Django Admin
Então, depois disso tudo, tem mais?
Com certeza.
Django conta com uma bilbioteca de paginação nativa;
views genéricas para automatizar CRUDs;
views para feeds (Atom ou RSS, o que você quiser :D);
Um framework de mensagens simples e poderoso;
CSRF nativo
Signals
Suporte nativo a testes, com cliente de testes
Etc etc etc
Antes de finalizar, vamos a algumas considerações.
Eu não sei Python, tem problema?
A vantagem de conhecer profundamente a linguagem Python é que ao desenvolver aplicações em Django, podemos explorar melhor os melhores recursos da linguagem Python para construir o seu software.
Assim, o ideal é aprender Django e Python paralelamente, ou até aprender Python antes, e não apenas o suficiente de Python para usar o Django Admin :)
Existe uma variedade enorme de web hostings que suportam aplicações em Python. Basicamente você precisa saber se o servidor web tem uma interface WSGI para que você poderá utilizar o Django ou outro framework Python.
Alguns servidores que podem ser utilizados: Apache, IIS, Nginx, Passenger, dentre outros
Além disso, empresas como Kinghost, Localweb, webfaction, python anywhere, linode, dentre outros suportam aplicações web em Python.
E agora, o que fazer? Como prosseguir com o Django? Quais são os links bacanas pra seguir em frente?