I'm choosing a framework and thinking of the architecture of a project of mine.
1. So far I've been using Python + Django.
2. As for the front end, my knowledge is very weak. I'm one for the server side.
What a project is
1. This is a service for clients to manage their advertising (like Google Ads).
2. The facade is pretty simple: rather a simple client area, home page, a blog, contacts.
For a client it will look like an ordinary web site. Like this forum or something.
As for web interface, Django is perfect for me.
3. I'll need ordinary batteries for a web site (call them plugins, applications, modules or something). Admin interface, tags, commenting system etc. Django has a lot of ready made batteries that I need. Pretty much everything.
3. Business logics of the project is complicated and huge. That is why I have chosen Java for this part of the project.
For the business logic of this project I'd prefer not to use dynamic typing. It will be in Java. This is not discussable.
4. It is not a distributed system: I'll have only one server (at least for the nearest decade).
5. I'm ready to study any framework for the server side.
What troubles me 1. Can I somehow integrate Django and Spring? I mean that I can prepare initial params in Django. Say, some 100 values among which there is a client's token. Then I need to transmit this all to Java at the same server. The params will be processed, and the necessary advertising API will be called with the client's token.
2. I can try to build web interface in Grails. Grails is suitable for building web interface for this project. But Django is better than Grails. It is a more mature framework. It has a better community, more batteries etc. And I already know it.
3. I can try to build web interface with Spring MVC. But for a web site Spring is not the best choice, if I'm not mistaken. Because it lacks of batteries necessary for an ordinary web site which I need, and is overburdened with a lot of batteries for an enterprise solutions which I don't need.
My plans so far 1. Django for web interface and ordinary web site staff.
2. When on the server, from Django I will call localhost:8080 and transmit params as JSON.
2. At localhost:8080 Spring will be listening.