Using django ORM from web browser and from command line apps

News123 news1234 at free.fr
Tue Jun 21 20:21:54 EDT 2011


Hi Ian,

On 06/22/2011 02:09 AM, Ian Kelly wrote:
> On Tue, Jun 21, 2011 at 5:39 PM, News123 <news1234 at free.fr> wrote:
>> I'm having a django browser application.
>>
>> There's certain administrative tasks, that I'd like to perform from the
>> command line (cronjob or manually).

> It sounds like you probably want a custom management command:
> 
> https://docs.djangoproject.com/en/1.3/howto/custom-management-commands/
Didn't know this existed.
Yes this is definitely a way to go. At least for part of the commands,
that I plan to implement.
Out of curiousity: Do you know whether the imports would be executed for
each potential command as soon as I call manage.py or only
'on demand'?

> 
>> I wanted to know whether there are any precautions to take if I do this.
>>
>> The one issue, that I could imagine is that Django (if I understood
>> correctly) performs normally database transaction based an a http request.
> 
> If you have the TransactionMiddleware enabled, yes.  Otherwise the
> default is to commit everything immediately.

Good to know.
> 
>> What would happen if I don't do anythong special in a script.
>> Would the entire runtime of the script be considered a transaction?
> 
> The default here is also to commit everything immediately.  Since
> there is no HTTP request, the TransactionMiddleware does not get
> invoked even if enabled.  For controlled transactions you will need to
> use the commit_on_success or commit_manually decorator /
> context-managers:
> 
> https://docs.djangoproject.com/en/1.3/topics/db/transactions/
> 
Thanks this url is very clear. :-)

I will use the commit model as required for my different tasks



More information about the Python-list mailing list