Django开发数据可视化大屏-项目启动配置

本文主要内容:Python开发之配置端口和浏览器自动打开Django项目。以及如何使用安装使用PyCharm进行开发,如何安装python,django及环境变量的配置

一.安装Python

首先我们在安装Django前,需要先安装Python开发环境;
我们可以到下面网站去下载安装包进行安装:

下载Python安装包:

下载地址:https://www.python.org/downloads/

Python如果已经安装的请跳过:
我们点击下载的msi文件进行安装,一路点“Next"按钮就行。
在这里插入图片描述

配置Python环境变量

安装完后配置下环境变量。
在这里插入图片描述

二.Windows下安装Django

安装前我们先下载Django:

下载Django安装包

下载地址:https://www.djangoproject.com/download/

解压下载的文件,并放在自己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/.整个过程就全自动化了。

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huidaoli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值