
Django开发数据可视化大屏-项目启动配置
Python开发之配置端口和浏览器自动打开Django项目。以及如何使用安装使用PyCharm进行开发,如何安装python,django及环境变量的配置
本文主要内容:Python开发之配置端口和浏览器自动打开Django项目。以及如何使用安装使用PyCharm进行开发,如何安装python,django及环境变量的配置
一.安装Python
首先我们在安装Django前,需要先安装Python开发环境;
我们可以到下面网站去下载安装包进行安装:
下载Python安装包:
Python如果已经安装的请跳过:
我们点击下载的msi文件进行安装,一路点“Next"按钮就行。
配置Python环境变量
安装完后配置下环境变量。
二.Windows下安装Django
安装前我们先下载Django:
下载Django安装包
解压下载的文件,并放在自己Python安装目录中,然后进入CMD窗口。
通过cd命令进入到Django目录。
cd Django-1.6.2
然后执行安装命令:
python setup.py install
安装完后,Django就自动安装在Python的Lib下的site-packages。
配置Django环境变量
跟python一样,也需要配置下环境变量。
将C:\Python33\Lib\site-packages\django;C:\Python33\Scripts
填加到环境中。后期可通过使用Django的django-admin.py命令新建工程了。
我们安装完后需要检查确认下Django安装成功。可以使用下面命令检查下。
>>> import django
>>> django.get_version()
输出了1.6.2说明安装成功,这是我们安装的Django的版本号。
三.安装pycharm
PyCharm是一款功能非常强大的Python编辑器,有跨平台性。这是下载地址:
下载PyCharm
下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
进入网官后我们下载windows版本,
这里我们选择下载,community社区版,因为professional是要钱的。
一路“Next”安装完就可以了。
下面来讲下如何使用Pycharm安装Django和开发Django项目。
依次点击 file–>settings–>project Interpreter–>点±->输入Django–>勾选Specify version–>Install Package
下面在pycharm中使用命令的方式创建项目
打开Terminal窗口,输入命令
django-admin startproject 项目名称
下面开始创建应用:
命令如下:
python manage.py startapp 应用名
下面我们来运行刚才的项目:
使用下面的命令:
python manage.py runserver
manage.py runserver 80 # 指定端口
注意:要在 manage.py 同级目录执行命令。
在浏览器中打开http://127.0.0.1:80//
项目已经运行了,说明没有问题。
下面我们再修改代码。
四.项目启动配置
我们看下manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'echart1Project.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
上面的代码其实就相当于只有execute_from_command_line(sys.argv)
这一行是最重要的。
比如:os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'echart1Project.settings')
在程序运行过程中设置环境变量。
比如:except ImportError as exc
捕获异常,
比如:raise ImportError
触发异常。
下面我们来修改下代码,让项目启动后自己通过8888商品访问,并自动打开浏览器运行项目。
if len(sys.argv) == 1:
sys.argv.extend(['runserver', '--insecure'])
在python中,所有命令行参数都是存放在sys.argv中,同时第一个参数是脚本名,其他变量存储在argv[1]中。
这里通过sys.argv.extend(['runserver', '--insecure'])
添加一个参数 runserver.
接下来写二个函数Is_child_processing(),enable_browser_with_delay(),来完成整个配置。
def Is_child_processing():
from multiprocessing.connection import Listener
from queue import Queue
from threading import Thread
q = Queue()
def lock_system_port(_port):
nonlocal q
try:
listener = Listener(("", _port))
q.put(False)
except Exception:
q.put(True)
return
while True:
serv = listener.accept()
t = Thread(target=lock_system_port, args=(62771,))
t.setDaemon(True)
t.start();
del t;
return q.get()
def enable_browser_with_delay(argv, _t=None):
try:
subcommand = argv[1]
except IndexError:
pass
if subcommand == 'runserver' and '--noreload' not in argv:
try:
parser_port = argv[2]
port_with_colon = parser_port[parser_port.index(":"):]
except (IndexError, ValueError):
port_with_colon = ":8888"
finally:
import webbrowser
import time
if not _t: _t = 0.5
time.sleep(_t)
webbrowser.open_new("http://localhost" + port_with_colon)
这样子修改后,整个代码就是这样的了。
#!/usr/bin/env python
def Is_child_processing():
from multiprocessing.connection import Listener
from queue import Queue
from threading import Thread
q = Queue()
def lock_system_port(_port):
nonlocal q
try:
listener = Listener(("", _port))
q.put(False)
except Exception:
q.put(True)
return
while True:
serv = listener.accept()
t = Thread(target=lock_system_port, args=(62771,))
t.setDaemon(True)
t.start();
del t;
return q.get()
def enable_browser_with_delay(argv, _t=None):
try:
subcommand = argv[1]
except IndexError:
pass
if subcommand == 'runserver' and '--noreload' not in argv:
try:
parser_port = argv[2]
port_with_colon = parser_port[parser_port.index(":"):]
except (IndexError, ValueError):
port_with_colon = ":8888"
finally:
import webbrowser
import time
if not _t: _t = 0.5
time.sleep(_t)
webbrowser.open_new("http://localhost" + port_with_colon)
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'echart1Project.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
if len(sys.argv) == 1:
sys.argv.extend(['runserver', '--insecure'])
try:
if Is_child_processing():
import threading
t = threading.Thread(target=enable_browser_with_delay, args=(sys.argv, 1))
t.start(); del t;
except Exception as e:
print(str(e.args))
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
这样运行项目后,就可以不用再通过命令运行时设置端口,也不用单独去打开网页去访问http://127.0.0.1:8888/.整个过程就全自动化了。
更多推荐
所有评论(0)