In my recent project there was a lot of data business logic, so I had to organize this code somehow. In this article I'll describe a few hints on how to it.
Simple business logic functions should in models or managers. When there's a lot of them, the can be split in mixins.
# logic.py class EventLogic(object): def start(self): if self.condition(): # ... # models.py class Event(models.Model, EventLogic): name = models.CharField() # ...
For business logic errors you should declare custom exception classes. It's not fun to understand what this specific IntegrityError means.
When all logic is in model and can throw, say,
BusinessLogicException, we can write views like this:
from django.contrib import messages def event_action(requets, event_id, action): # event = get_object_or_404(...) try: getattr(event, action)(request.user) except BusinessLogicException, e: messages.warning(request, e.message) return redirect(request.POST.get('next') or event)
Welcome all who are reading this article. I was given a task of creating a parser (spider) with the Scrapy library and parsing FTP server with data. The parser had to find lists of files on the server and handle each file separately depending on the requirement to the parser.
SQL is a fairly complicated language with a steep learning curve. For a large number of people who make use of SQL, learning to apply it efficiently takes lots of trials and errors. Here are some tips on how you can make your SELECT queries better. The majority of tips should be applicable to any relational database management system, but the terminology and exact namings will be taken from PostgreSQL.
There are two most popular web frameworks in Python. There is the Django with lots of intelligent defaults and the Flask micro framework with complete freedom in the choice of modules. Let’s see, what django vs flask is in 2017.