I am trying to create my first Django project and i've been following a tutorial for the setup here (so far this tutorial has been very helpful)
The only thing i'm doing different is i'm running everything in bash rather than the DOS command prompt (something else i'm new to)
My problem is that nothing happens in bash when i execute $ python manage.py runserver
however, if i go to http://127.0.0.1:8000/ the server is running and i get the django welcome page.
But bash just stays frozen with a blank line after the command i executed. Then if i do a keyboard interrupt, i can enter new commands in bash, but then if i go back to http://127.0.0.1:8000 the server isn't running and i get 'webpage not available'.
I'm need to know why i can't execute new commands in bash after i have executed $ python manage.py runserver
when you run python manage.py runserver something is happening - there is a web service listening on http://127.0.0.1:8000/
The reason bash appears to be frozen is that the runserver is "holding" it.
Related
I'm new to Django Project. I try to run the server with the command: python manage.py runserver in cmd. However, when I close the cmd, the server also closes too. So is there any way to run a django server and keep it running continuously even if I close the cmd? I'm using Windows. Thanks in advance.
I already tried some solutions like adding a "&" symbol (python manage.py runserver &), but it is not working.
When I type manage.py runserver in the shell, there only opens my text editor, instead of starting the server. I do not understand this issue. The documentation of django says, the server should start.
to start the server u should type python manage.py runserver and
before this make sure that you are in the correct dir and also make sure you are working within your created environment.
Solution was to go in windows default settings and change the program to open .py files to python
I have a django project hosted on an amazon ec2 linux instance.
For run my app also when section is close i use gunicorn but i experience some errors and degradation in perfonrmances.
When i run command:
python manage.py runserver
from terminal all works great but when section is close app does not work.
How can i run command "python manage.py runserver" for work forever (until i'll kill it) in background also in case of closed session?
I know there is uWSGI but i prefer if possible use directly django native command.
Thanks in advance
What happens here is that the script is interrupted by SIGHUP signal when your session is closed. To overcome this problem, there is a tool called nohup which doesn't pass the SIGHUP down to the program/script it executes. Use it as follows:
nohup python manage.py runserver &
(note the & in the end, it is needed so that manage.py runs in background rather than in foreground).
By default nohup redirects the output in the file nohup.out, so you can use tail -f nohup.out to watch the output/logs of your Django app.
Note, however, that manage.py runserver is not supposed to be used in production. For production you really should use a proper WSGI server, such as uWSGI or Gunicorn.
You can install and use tmux if you want to run your scripts in background even after closing SSH and mosh connections
$ sudo apt-get install tmux
then run it using command $ tmux a new shell will be opened just execute your command
$ python manage.py runserver 0.0.0.0:8000
0.0.0.0:8000 here will automatically get your allowed hosts. Now you can detach your tmux session to run it in background using CTRL + B and then press D
Now you can exit your terminal but your command keep on running in tmux. Just learn basic commands to use tmux from here
for that, you can use screen just start a new screen and run
python manage.py runserver
I just started learning django by using tango with django.
I did everything up till creating django project.
The problem I have is running with "manage.py" file.
When I ever I type
$ python manage.py runserver
it says
python: can't open file'manage.py'
So I tried
$ python c:\Users\<username>\tango_with_django_project\manage.py runserver
then it worked. Is there any way that I can run manage.py without typing long line like second one?
thanks
If you don't want to type each time, when you to run django dev server, just create .bat file (if you use Windows, as I can see) with this (working) string.
After that you need only double-click on this file to run server.
Did you changed current dir to the django project?
c:
cd \Users\<username>\tango_with_django_project\
python manage.py runserver
I'm developing some Python project with Django. When we render the Python/Django application, we need to open the command prompt and type in python manage.py runserver. That's ok on for the development server. But for production, it looks funny. Is there anyway to run the Python/Django project without opening the command prompt?
The deployment section of the documentation details steps to configure servers to run django in production.
runserver is to be used strictly for development and should never be used in production.
You run the runserver command only when you develop. After you deploy, the client does not need to run python manage.py runserver command. Calling the url will execute the required view. So it need not be a concern
If you are using Linux I wrote a pretty, pretty basic script, which I am always using when I don't want to call this command.
Note: You really just should use the "runserver" for developing :)
#!/bin/bash
#Of course change "IP-Address" to your current IP-Address and the "Port" to your port.
#ifconfig to get your IP-Address
python manage.py runserver IP-Address:Port
just name it runserver.sh and execute it like this in your terminal:
./runserver.sh