Pergunta

Estou pensando em portar uma aplicação PHP sobre a Python. A aplicação é principalmente sobre a recolha e processamento de dados. A principal aplicação é executado como um aplicativo de linha de comando autônomo. Há uma interface web para o aplicativo que é basicamente uma interface de relatórios muito leve.

Eu não uso um quadro na versão PHP, mas sendo novo para Python, eu estou querendo saber se seria vantajoso usar algo como Django ou no mínimo Genshi. A ressalva é que eu não quero que a minha distribuição de aplicativo a ser esmagada pelas partes estruturais que eu precisaria para distribuir com o aplicativo.

Está usando apenas a importação cgi em Python o melhor caminho a percorrer nesta circunstância? Eu tenderia a pensar que um quadro é muito alto, mas talvez eu não estou pensando em uma maneira muito "python" sobre eles. Que sugestões você tem neste cenário?

Foi útil?

Solução

A linha de comando Python, IMO, definitivamente vem em primeiro lugar. Chegar a esse trabalho, já que é a essência do que você está fazendo.

A questão é que usando ORM de um framework web de um aplicativo de linha de comando não é óbvio. Django fornece instruções específicas para o uso de sua ORM de um aplicativo de linha de comando. Aqueles são irritantes no início, mas eu acho que eles são um salva-vidas no longo prazo. Eu usá-lo fortemente para uploads gigantes de arquivos fornecidos pelo cliente.

Não use CGI nua. Não é impossível, mas muitas coisas podem dar errado, e eles foram todos resolvidos pelos frameworks. Por que reinventar algo? Basta usar alguém do código.

Frameworks envolvem aprendizagem, mas não real "overhead". Eles não estão lentas. Eles são código que você não tem que escrever ou de depuração.

  1. Saiba alguns Python.

  2. Faça o Django tutorial.

  3. Iniciar para criar uma aplicação web.

    a. Inicie um projeto Django. Criar um pequeno aplicativo nesse projeto.

    b. Construa o seu novo modelo usando o Django ORM. Criar um teste de unidade Django para o modelo. Certifique-se de que ele funciona. Você vai ser capaz de usar as páginas de administração padrão e fazer um monte de brincar. Só não construir o inteira web site ainda.

  4. Obter seu aplicativo de linha de comando para o trabalho usando Django ORM. Essencialmente, você tem que enganar o arquivo de configurações para este aplicativo para funcionar muito bem. Veja a configurações / configuração seção.

  5. Uma vez que você tem a sua linha de comando e do administrador padrão em execução, você pode terminar o aplicativo web.

Aqui está a regra de ouro de quadros:.. É o código que você não tem que escrever, depurar ou manter Use-los

Outras dicas

Você pode considerar o uso algo como web.py que seria fácil de distribuir (uma vez que é pequeno) e que seria também ser fácil de adaptar as suas outras ferramentas para isso, uma vez que não requer que você envie ao quadro tão parecido com Django faz.

Esteja avisado, no entanto, não é o quadro mais amado na comunidade Python, mas pode ser apenas a coisa para você. Você também pode verificar web2py , mas eu sei menos sobre isso.

Depende do tamanho do projeto. Se você tivesse apenas alguns php-scripts anteriores, que chamou o seu stand aplicativo sozinho, então eu provavelmente ir para um cgi-aplicativo.

Se você tem uso para bancos de dados, reescrita de URL, modelagem, gerenciamento de usuários e tal, em seguida, usando um quadro é uma boa idéia.

E, claro, antes de transportá-lo, considerar se vale a pena apenas para mudar o idioma ou se houver específica Python características que você precisa.

Boa sorte!

Eu recentemente portado um aplicativo PHP para Python usando web.py . Como estruturas ir é extremamente leve, com dependências mínimas, e tende a ficar fora do seu caminho, para que ele possa ser o compromisso que você está procurando.

Tudo depende de sua aplicação inicial, porém, porque com uma grande aplicação as vantagens de ter um quadro full-featured manusear o encanamento tendem a superam as desvantagens envolvidas em ter que arrastar em torno de todo o código do framework.

Django torna possível sacar um site rapidamente, isso é certo. Você não precisa ser um mestre Python para usá-lo, e uma vez que é muito pythônico nele de design, e não há realmente nenhuma "mágica" acontecendo, ele vai te ajudar a aprender Python ao longo do caminho.

Comece com os exemplos, confira alguns screencasts Django de TwiD e você estará em seu caminho.

Comece devagar, aprimorando o administrador, e jogando com ele via shell é a maneira de começar. Uma vez que você tem uma alça sobre o ORM e obter como as coisas funcionam, começar a construir as coisas reais!

O quadro não vai causar quaisquer problemas de desempenho, como S. Lott disse, é código que você não tem que manter, e isso é o melhor tipo.

Ir para um quadro. materiais básicos, como manipulação de sessão são um pesadelo se você não usar um porque Python não é web especializada como PHP.

Se você acha que o Django é demais, você pode tentar um mais leve como o muito pequeno, mas ainda acessível web.py.

Para o amor de Pete, use um quadro! Há literalmente dezenas de quadros lá fora, a partir cherrypy para Django para albatroz para ... bem .. you name it. Na verdade, o grande número de frameworks web são o que as pessoas apontam para quando eles reclamar sobre a popularidade do Rails.

A comunidade de desenvolvimento web Python é dividido com nenhuma voz. Mas isso é outro alltogether tópico! O ponto é, há "toolkits web" (por exemplo, albatroz) que são suficientes bastante leve, mas poderoso para você passar o dia (por exemplo, auto-verificação de um bot não fez um simples falso formulário de submissão, ou ajudar com a manutenção MVC limpo ).

Se você quer algo que não é olhar "demasiado quadro" aqui:

http://wiki.python.org/moin/WebFrameworks

Procure em "estruturas básicas Fornecer Templating". Eles são todos leves e fazer todas as coisas "não reinventar a roda", sem forçar um caminhão de Mac em você.

Depende da maneira que você está indo para distribuir seu aplicativo.
Se ele só vai ser usado internamente, ir para Django. É um prazer trabalhar com ele. No entanto, o Django realmente fica aquém na distribuição-tarefa; django-aplicações são uma dor de configurar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top