Migrando de Delphi para Python

407 views
Skip to first unread message

Ari Caldeira

unread,
Dec 18, 2007, 9:39:42 PM12/18/07
to django...@googlegroups.com
Olá!

Meu nome é Ari Caldeira, trabalho com desenvolvimento de sistemas já
há mais de 10 anos, passei pelo Cobol, pelo Clipper, Delphi, e, agora,
estou querendo pular o óbvio .NET para desktop para desenvolver
sistemas Web.

Uso pessoalmente o Linux (Gentoo) há uns 4 anos, mais ou menos, mas
nossa base instalada de clientes, como a maioria, usa Windows, e
nossos sistemas desenvolvidos em Delphi acessando bancos de dados
Firebird.

Temos, eu e meu sócio, procurado alternativas ao asp.net, e acabei
chegando ao Django. Segui o tutorial do saite oficial, e acho que
entendi bem o conceito dos modelos, mas ainda tenho dificuldades em
entender as views e os forms. Acho que estou com a mente presa no
modelo desktop: views seriam como relatórios, listagens etc., e forms
os forms propriamente ditos?

No Delphi eu organizo minha aplicação, pelo menos a parte com que o
usuário vai interagir, criando uma tela padrão de edição de dados, um
form que tem todas as funcionalidade básicas que serão herdadas por
outros forms, como opções genéricas de pesquisa, filtragem etc., mais
ou menos como a interface administrativa do Django.

Já entendi que (ainda) não é possível usar essa interface fora da área
de administração do Django. Compensa investir tempo na criação de uma
estrutura similar que possa ser herdada livremente? Ou seria melhor
mudar a maneira de estruturar a interface?

Tenho muito mais dúvidas, mas não quero me estender demais. Se alguém
puder dar uma luz, indicar uma leitura, um caso prático, eu agradeço
muito, mesmo.

Obrigado!

Ari Caldeira

RafaelCDB

unread,
Dec 19, 2007, 5:31:56 AM12/19/07
to Django Brasil
Opa Ari, td bem?
Eu também hj estou no Delphi e acabei indo para o .NET pra Web (no
qual to me arrependendo agora que encontrei o Django, mas tb não posso
escolher, se eu falo Python e Django pro meu chefe ele vai achar que
to falando de coisas de outro mundo hehhe).
Já olhou meu tutorial de NewForms e o guia de referencia de Models?
http://rafacdb.wordpress.com

Na web o conceito em minha opinião é bem diferente do desktop, no caso
de herdar as telas como no Delphi, na web vc vai herdar as paginas
html, ou pedaços dela usando algo como {% extends "admin/base.html" %}
ainda não testei isso mas creio que herde o html do arquivo base.html
em uma pagina nova, isso retirei do admin como pode ver.

Quanto a estrutura de um projeto isso foi discutido muito aqui na
lista, o tópico é "Boas praticas de programação em Django" onde o
pessoal da exemplos de como montar um projeto.

Faça alguns exemplo, estude bastante Python, e faça o tutorial lá do
meu blog que acho que vc vai pegar a idéia do views e dos "forms". Os
views são teu arquivo .pas do Delphi e os forms são as paginas html
geradas pelos views, se vc não souber nada de html tb seria bom pegar
uma idéia para poder lidar com os códigos das paginas geradas pois vc
vai precisar. Os views se comunicam com o html e vice-versa, e os
views com o models.py que por sua vez se comunica com o banco de
dados.

[]'s

Marinho Brandao

unread,
Dec 19, 2007, 6:06:35 AM12/19/07
to django...@googlegroups.com
Ari, bom dia!

eu, como o Rafael e outros aqui, trabalhei muito tempo no Delphi e
ainda estou com ele na metade do dia.

A herança visual do Delphi será trocada pela herança de templates, q
vc pode ver melhor em [1].

O Django adota o MVC, onde uma view é a interface com qualquer coisa
externa - seja humano, software ou hardware.

No Django, as views são funções declaradas em um arquivo "views.py".
Estas "views" podem utilizar forms para interface de entrada de dados
(note que este não é o caso de todas as páginas), e podem utilizar do
sistema de templates para exibir informações em formatos texto (como
HTML, XML, JSON, etc).

Ou seja: você vai trabalhar a herança nos templates, e não nos forms,
como estamos acostumados no Delphi.

> Compensa investir tempo na criação de uma
> estrutura similar que possa ser herdada livremente?

eu acredito que não. Ao menos as minhas tentativas nesse sentido só
serviram pra mim cair na real de que sistemas web devem ser pensados
como sistemas web - desprendido do conceito quadradinho do desktop.

dê uma olhada no Abelo [2] por exemplo, ou ainda no Google Analytics
[3], que ao meu ver são sistemas web de muito bom gosto.

[1] http://www.djangoproject.com/documentation/templates/
[2] http://www.colivre.coop.br/Abelo/WebHomePtbr
[3] http://analytics.google.com/

Em 19/12/07, RafaelCDB<raf...@gmail.com> escreveu:


--
Marinho Brandão (José Mário)
http://marinho.webdoisonline.com/

comechao

unread,
Dec 19, 2007, 6:48:49 AM12/19/07
to Django Brasil
Caldeira no django temos os Newforms que são formulários que você cria
usando python puro :D Com eles você também tem os widgets, templates e
views. Toda essa estrutura é muito boa e faz com que o tempo de
desenvolvimento seja pequeno e depois a carga de manutenção seja mais
tranquila. Temos que ver que o paradigma web é bem diferente do
desktop e muita coisa muda...

Mas usa Django, não vai se arrepender não ;)

Andre Duarte

unread,
Dec 19, 2007, 7:01:33 AM12/19/07
to Django Brasil
On 19 dez, 00:39, "Ari Caldeira" <aricalde...@gmail.com> wrote:
> Olá!
>
> Meu nome é Ari Caldeira, trabalho com desenvolvimento de sistemas já
> há mais de 10 anos, passei pelo Cobol, pelo Clipper, Delphi, e, agora,
> estou querendo pular o óbvio .NET para desktop para desenvolver
> sistemas Web.
Ari, seja bem vindo ao mundo Python! Eu, assim como vc, também venho
do desenvolvimento desktop, foram 7 anos trabalhando com Delphi e 1
ano e meio com ASP.NET(C#).
> Uso pessoalmente o Linux (Gentoo) há uns 4 anos, mais ou menos, mas
> nossa base instalada de clientes, como a maioria, usa Windows, e
> nossos sistemas desenvolvidos em Delphi acessando bancos de dados
> Firebird.
Sempre usei Delphi com MySql, acho que me ajudou pois não sei se o
Django suporta oficialmente Firebird/Interbase.
> Temos, eu e meu sócio, procurado alternativas ao asp.net, e acabei
> chegando ao Django. Segui o tutorial do saite oficial, e acho que
> entendi bem o conceito dos modelos, mas ainda tenho dificuldades em
> entender as views e os forms. Acho que estou com a mente presa no
> modelo desktop: views seriam como relatórios, listagens etc., e forms
> os forms propriamente ditos?
Bem, eu tb tive problemas para entender o Padrão de Projeto mais
evidente do Python que é o MVC ou MTV. Dê uma lida nesta matéria do
Andrews para entender como o MVC foi estruturado no Django.
http://pyman.blogspot.com/2007/04/o-mvc-o-mtv-e-o-django.html
>
> No Delphi eu organizo minha aplicação, pelo menos a parte com que o
> usuário vai interagir, criando uma tela padrão de edição de dados, um
> form que tem todas as funcionalidade básicas que serão herdadas por
> outros forms, como opções genéricas de pesquisa, filtragem etc., mais
> ou menos como a interface administrativa do Django.
Creio que vc já tenha lido o artigo do Medina, então.

Model(as classes do sistema responsáveis por abstrair o acesso a dados
- Dataset + ou -)
View(Suas regras de negócio)
Template(Sua interface com o usuário - equivalente ao TForm)

Veja que a aplicação está estruturada em camadas, se vc seguir as boas
práticas poderá ter aplicações totalmente plugáveis e a tão perseguida
reusabilidade.
> Já entendi que (ainda) não é possível usar essa interface fora da área
> de administração do Django. Compensa investir tempo na criação de uma
> estrutura similar que possa ser herdada livremente? Ou seria melhor
> mudar a maneira de estruturar a interface?
Opa, vc pode criar sua aplicação usando newforms(futuro forms)
livremente e montar sua própria interface.
O admin do Django é só para aplicações mais simples ou pode até mesmo
ser usada para prototipação.

A próxima versão do Admin será muito mais poderosa.

> Tenho muito mais dúvidas, mas não quero me estender demais. Se alguém
> puder dar uma luz, indicar uma leitura, um caso prático, eu agradeço
> muito, mesmo.
Participe!! Tem muita gente boa aqui. Logo vc estará dando aula de
Django e Python.
> Obrigado!
>
> Ari Caldeira

Abraços,

André
Reply all
Reply to author
Forward
0 new messages