Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 months ago.
Improve this question
I have a django project, that works similar to Jupyter Notebook, in terms of Being a program launched offline in localhost on a web browser, moreover my webapp has an opencv webcam pop-up, that will be launched when you press a button.
I want to deploy my django project, so it can be launched by just clicking a file in Windows.
According to what I read, There are two possible solutions:
Install Python Interpreter with Dependencies on client computer first, and using a bat file, to launch the django server.
Containerizing the Django project with Python and its dependencies, either using Docker or perhaps an exe file?
Which solution is better? I would prefer the second one personally, but I’m confused how to do so.
Can it be done as simple as using pyinstaller or not?
Here are my dependencies for reference:
Django
pillow
django-object-actions
django_user_agents
django-cleanup
opencv-python
imutils
cmake
dlib
face-recognition
I think that the best practise would be to use containers like e.g. docker. After that you have the following benefits:
Dependencies inside the container machine (automatically with pip install from requirements file)
Multiplatform possibility
Versioning with tags
You can run database in a second container if needed (combined with docker compose)
Click and run with docker desktop
fyi: There a lots of tutorials on how to deploy django in docker containers :)
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I have developed a django app in django 1.7 version with python 2.7 and want to deploy it in python anywhere with free version, but python anywhere does not support it-
But it only supports django 1.3 with python 2.7. So what changes i have to make to run my code in it with django 1.3.
Else if anybody is having any other option for django(1.7) app deployment plz suggest me.
Also i have deployed my django app(1.7) with 3rd option selected(python 2.7, django 1.7) then the output is - link to my deployed app
PythonAnywhere dev here- you can actually install the version of Django that you want using a virtualenv!
The commands to run from bash are just
mkvirtualenv Django17
pip install django==1.7
And then making sure that you set your virtualenv path correctly in your webapps tab! (in this case your path would be /home/your-user-name/.virtualenvs/Django17/)
ie. You would have to set the virtualenv path as shown in the picture above
ps: on an unrelated issue to 1.7 vs 1.3, the reason that you are seeing the Django welcome page of the hello world/congrats on your first webapp variety is because that is the sample webapp that we have made for you.
You would need to correctly set up the paths to point to your source-code for your actual website to be displayed.
It is possible to install any version of Django in Pythonanywhere.
There is a link in Pythonanywhere wiki that provides detailed instructions to do it: Wiki
You can user Heroku, it works with that django you want or python or mostly anything you want, it has a free plan and you can make how many apps you want.
For your question ... to downgrade from django 1.7 to 1.3 ... there are too many thins to consider and we don't know what do you do on your project.
Or another option is Docker, i experimented with this.
You can even user Amazon , if you make an account you can get 12 months free trial, 750 hours / month for free with one machine.
The answer to your question is: You should follow the excellent release notes, but reverse them.
Each release note will tell you what’s new in each version, and will also describe any backwards-incompatible changes made in that version.
https://docs.djangoproject.com/en/1.7/releases/
But it is probably better find an alternative to pythonanywhere.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I need an idea how to implement following
1. Want to build python application which will update itself when the new patch is available
2. It will run the unit test to check if the patch deployed successfully
3. If there are any failure during installation it will rollback automatically
What I don't know
A. Not sure how to build a patch from the source code
B. Algorithm / standard process to check about the new updates are available
C. Auto deployment/Rollback process
Any suggestions/ links?
I implementeed a server that recognizes the changed source code and pulls the new code. It is hosted at pythonanywhere.com at this url and the code is on github. This answer bases on my experiences when implementing the update functionality.
When you version your code with git you usually
have a master or deploy branch that works
have a develop branch that is merged into the master-->deploy branch when all the tests run through.
This way you only need to know when the deploy branch changes in order to figure out when to restart. Tests should be run before in order to have no downtime. If you run the tests on the deploy system it may take them too much time or the invalid code destroys the system.
So the deploy branch works because it was tested before.
For automated testing you can use a continous integration server like travis that downloads the code and tests it. It can be asked about whether the test run of a specific commit.
When you host your code on github then you can specify a push http address. I used http://server/update Whenever the repository is changed github notifies your server then.
You can then update the source code by pulling it from git and if the deploy branch really changed then you can restart the application. I can not do this in the server ut maybe you can.
Scenario:
I push code to github
github sends a POST to http://server/update
#post('/update') # bottle code
def pull_own_source_code_and_restart():
with inDirectory(server_repository):
previous_commit = last_commit()
text = git.pull()
current_commit = last_commit()
if previous_commit != current_commit:
restart()
return "Git says: {}".format(text)
have a look at these two files:
command_line.py for the git commands
bottle_app.py for a derivating implementation if the server can not restart itself.
A version control system usually does the 'patching' for every version. I use git. If git is unknown to you now, learn it! Here is workshop material for Pythons Django and git: http://www.opentechschool.org/material.html
Let me now if this information is sufficient to implement such a functionality in Django. Please post your code here when you got it to work.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I'm absolutely "brand new" to Paas and django/python.
I would install django on heroku.
Before, I need to install on it Python. But I'm unable to do that. I looked a while for doc about it, but unfortunately I'm not able.
I've created a heroku account. I log in and the try to follow the guide.
please, help me. give me some starting point...
TIA
Renato
Setting up your project
You'll need to add a couple of files to the root of your project:
The first file, named requirements.txt, should contain the dependencies for your project (this is not really Heroku specific). At the minimum, this should include:
Django
Then, you'll need to add a file named Profile (this is more Heroku-specific) that tells Heroku how you run your project:
web: gunicorn YOUR_PROJECT_NAME.wsgi:application
YOUR_PROJECT_NAME should be whatever argument you gave manage.py startproject. This should also be the name of the folder that contains your wsgi.py file (settings.py will be there too).
Deploying to Heroku
Next, you should initialize a git repository for your projec:t
git init
Then, commit your project:
git add .
git commit -m "Initial commit for my project"
Then, provided you installed the Heroku toolbelt, you should be able to add your application to Heroku:
heroku create
And finally, deploy to Heroku using git:
git push heroku master
You app isn't running yet, so you'll want to launch it:
heroku ps:scale web=1
Then, you can access it via your browser:
heroku open
You might want to have a look at Heroku's django guide.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
I'm in the early phases of designing and implementing a python web project that i want to be able to easily distribute.
Coming from a primary PHP and Perl world i know how i would do the project in those lanuages but I am trying to find the best method for python.
Not sure if it matters, but I'm thinking of using django as the web framework, but still exploring other frameworks.
What i'm looking for is best practices to be able to bundle my application and have users just install it using pip.
Would i be able to package the wen application like that even if it using django or is that not the way its normally done? Would they instead just download the code and set it up like it was any other tar ball of code?
I tried searching around for this but i find mostly information on people deploying there own projects.
Thanks
Dan
The answer depends of the size of your project.
If it's a plugin that could be integrated to any web site, so probally just an app in the project, it's quite easy check the page of the django's doc
If it's a full websitethen it's a little bit more complicated, since a django project depends on multiple settings that could differ from one system to an other I usually see the project being installed from a tar ball.
I've seen packages like django-admintools bundle multiple apps in one package, but the user still need to create a basic django project.
From what I know a full project cannot be install only by PIP.. the user always need to setup settings and the webserver (apache or nginx).
I hope this helped you.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I decided to move from PHP and start using Django. I have successfully installed Python and Django on my web server. How can I just code my Python/Django program, throw it to the server over FTP, and run it without the need to SSH to the server and restart the django server every time?
What is the method to run Django codes exactly the same way we run PHP code (having the server running all the time if possible)?
My server runs CentOS 5.8 and Apache.
Edit:
Alright I really recommend this tutorial for who ever want to setup dJango on a web server , my recommendation after reading a lot of posts. Using dJango on Nginx web server is the most powerful performance you could get
https://code.djangoproject.com/wiki/DjangoAndNginx
You can't magically make Django run like PHP. Please look at the deployment documentation, as it's some of the best around.
You'll see step by step instructions for apache.
As for not having to SSH every time you load new code, the best tool for this job is fabric.
http://docs.fabfile.org/en/1.5/
Fabric is an amazing tool that is extremely easy to install and configure, which lets you run commands on your remote machine from your local machine.
For example, I simply type fab production deploy on my local machine to...
push git changes
pull git changes on remote
run pip install
migrate database
run collectstatic
finally "restart" apache - touching wsgi file.
I just want to stress that fabric is not like those deployment build scripts which are complicated. Fabric will literally take you 10 minutes to set up.