Eu sou bastante novo em todo esse frenesi de estrutura do lado do cliente MV *. Não precisa ser o AngularJS, mas eu o escolhi porque me parece mais natural do que Knockout, Ember ou Backbone. Enfim, como é o fluxo de trabalho? As pessoas começam com o desenvolvimento de um aplicativo do lado do cliente no AngularJS e depois conectando o back-end a ele?
Ou o contrário, primeiro construindo o back-end no Django, Flask, Rails e depois anexando um aplicativo AngularJS a ele? Existe uma maneira "correta" de fazê-lo, ou é apenas uma preferência pessoal no final?
Também não tenho certeza se devo estruturar meu projeto de acordo com o Flask ou o AngularJS? práticas comunitárias.
Por exemplo, o aplicativo minitwit do Flask está estruturado da seguinte forma:
minitwit
|-- minitwit.py
|-- static
|-- css, js, images, etc...
`-- templates
|-- html files and base layout
O aplicativo tutorial do AngularJS está estruturado da seguinte forma:
angular-phonecat
|-- app
`-- css
`-- img
`-- js
`-- lib
`-- partials
`-- index.html
|-- scripts
`-- node.js server and test server files
Eu conseguia imaginar um aplicativo Flask sozinho e é bastante fácil ver o aplicativo AngularJS como o ToDo List sozinho, mas quando se trata de usar essas duas tecnologias, não entendo como elas funcionam juntas. Parece que eu não preciso de uma estrutura da Web do lado do servidor quando você já possui o AngularJS, um simples servidor da Web Python será suficiente. No aplicativo de tarefas do AngularJS, por exemplo, eles usam o MongoLab para conversar com o banco de dados usando a API Restful. Não havia necessidade de uma estrutura da web no back-end.
Talvez eu esteja muito confuso, e o AngularJS não seja mais do que uma biblioteca jQuery sofisticada, por isso devo usar da mesma forma que usaria o jQuery nos meus projetos do Flask (supondo que eu mude a sintaxe do modelo do AngularJS para algo que não entre em conflito com o Jinja2). Espero que minhas perguntas façam algum sentido. Eu trabalho principalmente no back-end e essa estrutura do lado do cliente é um território desconhecido para mim.
app.root_path
. Caso contrário, este é um bom local.