How to make django do user independent or session independent tasks? - django

I am working on a project which periodically downloads stock details as a json file from a web server and save locally for user requestes .Since it is not appropriate to download the same for each user request i need help in doing that
I know how to do it using cron but i prefer it in django itself ..

Write a django command using while True loop and thread.sleep(intervaltime) function.
And after starting django server, run this python manage.py commandname

Related

How can I call a custom Django manage.py command directly from code with specific database connection

i followed this solution to run customer django command programmatically , but it is limited for just one database connection.
I have django app configured with multiple database , is it possible to run custom django command using specific database connection?
exactly like when we use connections["DB_NAME_CONNECTION"].cursor() to execute an sql query
thanks a lot for your help!
One option is to create a new settings module (here's a guide) that contains your specific database connection configuration, and then use that settings module when using call_command():
management.call_command('mycommand', '--settings=mysite.settings.specificconnection')

Implement LiteSync on Django

I've tried to write sync sqlite database between 2 different Server but same app and DB. But when i turn on litesync.io in console, it doesnt synchronize the Django project with Django project in another server. I know it's wrong because i must configure it first in django project, but i've tried to change NAME of DATABASES into URI and it not work. I've tried it in console to execute query, it works, but not in Django Project. So, how to implement litesync on Django project? How to save data into Sqlite DB by URI?

How do I run Python code entered on a browser on Django views?

I have built a platform on django for running python scripts. The user is able to write their Python script in a text-area and when a button is clicked, the script should run on the back-end. It should also check for test cases from a database (like Hackerrank).
I have tried using the eval() function but the problem is that when the user writes input() in their code it should take the values from database for input.
Please help me figure this out.

How to use a different database for Heroku review apps?

I have a deployment pipeline on Heroku which recently started using review apps. This means I have an app - let's call it CI-APP -- which is being created from the master branch.
Every time a pull request is made, a review app is created. We are using Django in our project and so I also added the migrate command to the release phase in the project, so that database migrations can be done automatically.
Today, a coworker submitted a pull request which contained some database changes. The problem is that the migration was ran, and since review apps seem to be using the same database as the app they are suppose to merge to, the migration was applied and now my app CI-APP stopped working...since the code base no longer matches the database structure.
I searched a lot about how to use completely different databases for the review apps compared to the parent app, but to no avail (there are some resources mentioning how you can copy db contents, but that is not what I need).
Any suggestion ?
Update
Ok, so it seems that Heroku does create a new database for the review app, however: the review app copies all of its environment variables from the parent, including the DATABASE_URL (this seems to be the only way to actually create the review app : https://s3.amazonaws.com/heroku-devcenter-files/article-images/1461071037-initial_set_up_review_apps.png)
I think I can do some black magic in the postdeploy script, but since the database generated url can be something such as HEROKU_POSTGRESQL_{color}_URL, I am not sure how to find it ....
To do that, create the app.json file at the root of your project instead of using the heroku dashboard. In this file, you can specify what environment variables to inherit from the parent.
From the heroku docs:
"env": {
"INHERIT_THIS_CONFIG_VAR": {
"required": true
},
"DONT_INHERIT_THIS_CONFIG_VAR": "production"
},
This allows you to specify which database you want to use for the review app. Looking at the documentation of the heroku postgres addon (i assume you're using postgres):
As part of the provisioning process, a DATABASE_URL config var is
added to your app’s configuration. This contains the URL your app uses
to access the database.
So the database_url config variable will be created by the adddon. You simply need to not put it in the app.json file, and it will be created automatically.
Check that you do not have the DATABASE_URL set in the Pipeline Settings CONFIG VARS in Heroku either.. if it is set there, then it seems the Review App will use that as the DB link and not the one created when the Review App is created.

Django example for a web app that show git logs

I am looking for an example about how to display git log data about a commit.
I get the commit via shell script; then retrieve the info about this commit and make it pretty. Now I would like to add on a web app in Django, the capability to pass hash and project repo name, so I can display thee info in a nice way.
Altho I can't find tutorial that show how to build a web app for django, that display a page in this way. I just start with the tutorials today, so I don't know much. I also need to read from file, so I don't need a database nor the model, right?
IS this too complicate for a first Django app?