I am a newbie in programming, but now I connected my project with PostgreSQL. I learned the way to enter by SQL code and also found out that we can actually enter /adming (by creating the superuser and add data there). So which one is widely used in webdev?
Advertisement
Answer
It will depend completely on your application.
You can add rows to a table using SQL if that’s the easiest way for you. Or you can add rows by creating new object instances in Python code and .save()
ing them. Or you can create instances through a CreateView
or through the Django admin.
Adding data with SQL has the drawback that you will lise the benefit of any validators declared on the model’s fields. YOu may end up with data stored in your SQL tables which your app regards as “impossible”, which may cause you minor or even major difficulties.
I have several times written management commands which all have the same general format. For each “row” in a data source (often a spreadsheet) construct one or more Django objects and save them. You can process each data “row” within a transaction (with transaction.atomic()
) so if anything goes wrong, the data row is not committed. Or you can treat the entire process as a single transaction (not recommended for vast numbers of “rows”, though)ยท