Linked Questions

Popular Questions

Django : computationally/data intensive website

Asked by At

I come from the world of object programming (C++, python...) and am currently switching to web programming (django). The websites I went to build are computationally and data intensive (like mechanical simulation, bio-engineering, IA...). I have a hard time understanding what databases are used for in web programming and more generally understanding the architecture of web apps (or say computationally intensive websites). Here is my understanding :

  • Databases are only providing a persistence service (in a very organised and secured way though), they provide computational capabilities through querying but these are not meant for the complex computations examples stated above?
  • If heavy computation is required on the data, the data is first queried by django from the DB then loaded into a python "object" data model, then the computation happens in plain python and sent to the client thanks to django's templates?

Am I right?

Also, why are databases used to store data when it comes to web dev? Why isn't standard persistence solutions (like the methods used in C++ or Python) used for web dev?

Additionally, I expect the data to be loaded at the beginning of a session. Architecturally speaking, were in django should the query of the DB and deserialisation of the data be achieved?


EXTRA DETAILS AND A FINE TUNED QUESTION

I definitely need persistence and the data definitely needs to be read/write as it will intensively be modified by the user.

I can think about 3 computations architectures :

  • Computations performed by the database
  • Server-side computing
  • Client-side computing

If my understanding is right and database computing is not intended for complex computations (like mechanical simulation, bio-engineering, IA...), then I guess I would have to fallback to server-side or client-side computing. Say I choose server-side computing, so I do not have to learn about client-side solutions. In this case, I would actually consider querying all the data from the db in a python objects architecture, displaying the data in the front-end and performing operations in the back-end according to user instructions received from the front and storing again in the database at the end of the session or on user request. Is this good?

Related Questions