python Django项目以Debug模式启动和外网访问启动

Posted 刚刚好1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Django项目以Debug模式启动和外网访问启动相关的知识,希望对你有一定的参考价值。

一、Django介绍

介绍:

完善的web框架,包括前端和后端的管理,django项目管理;

管理后台访问:后面补充

前端页面访问:根据app/settings.py文件下配置的访问地址

1.1 项目结构

1.1.1 app项目配置

文件存放settings.py、urls.py、wsgi.py等

1.1.2 子应用配置

Migrations:

数据库模型的脚本,包括新增或更新了models的数据库表设计

Models.py:

数据库模型设计,表和字段类型的设计

Views.py:

视图层,用于处理后台的逻辑,并返回响应结果或图层

1.1.3 启动文件

Manage.py:

设置项目启动时,启用的配置文件及启动setup()

1.1.1   数据文件   

1.1.4 子应用结构

1.1.2   admin.py文件跟网站的后台管理站点配置相关。

1.1.3   apps.py文件用于配置当前子应用的相关信息。

1.1.4   migrations目录用于存放数据库迁移历史文件。

1.1.5   models.py文件用户保存数据库模型类。

1.1.6   tests.py文件用于开发测试用例,编写单元测试。

1.1.7   views.py文件用于编写Web应用视图。

1.2 模板和页面处理

Views.py: 编写web应用视图,包括返回什么数据,对数据进行处理,返回给前端html页面,html页面进行使用

Html页面获取到返回值:返回值在html页面使用要用 变量 ,

1.3 启动项目

1.2       操作步骤

前提:首次加载此项目时,需要创建表

1、 python manage.py makemigrations

2、 python manage.py migrate(数据迁移)

3、 如果没有账号,需要创建账号:python manage.py createsuperuser

4、 启动成功后,使用网址: http://127.0.0.1:8000/ ,访问,如果没有设置默认页,需要手动在网址后加上对应的views设置的地址

5、 进到登录页面,需要输入用户名和密码

 

1.3       补充启动

1.3.1   cmd或terminal:进到manage.py文件所在目录下

1.3.2   默认端口号8000,python manage.py runserver

1.3.3   指定端口号,python manage.py runserver + 端口号

1.3.4   局域网访问:python3 manage.py runserver 0.0.0.0:6000

1.3.5   停止项目:ctrl+c

1.3.6   设置Debug=True,项目修改后自动重启,若无,可使用ctrl+s强行重启

 

1.4 Debug模式启动项目

Pycharm以debug模式启动项目,

配置成功后,选择名称和debug设置一致的,点击调试模式

Debug模式启动成功

参考:https://blog.csdn.net/qq_43515713/article/details/127089262

 

1.5 外网访问形式启动

1、启动指定ip为: 0.0.0.0 允许所有连接

2、端口号:必须为没有占用,且已经开通了入站和出站规则(windows),已经开放了端口,如果公司涉及安全管理,会做端口控制,需要询问公司网络相关人员,是否已经开放了机器的外网访问

3、Settings.py文件: Allow_HOST=[*]

4、Settings.py文件:csrf值django出于安全考虑设计的防火墙,先直接注释掉setting.py文件中的先关配置

启动代码如下:

方式一:

直接直接默认的端口号 + ip,配置manage.py的configuration的配置

1、configuration:设置启动的参数为runserver

2、manage.py 文件,设置默认的端口号和ip,要是0.0.0.0表示允许所有连接

第二种方式,直接configuration 配置参数里面加个ip和端口号

参考: https://zhuanlan.zhihu.com/p/564265640

Win7环境下Apache+mod_wsgi本地部署Django

django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习

以前你总是使用python manage.py runserver进行服务启动,但是却不知:

  1. runserver是单线程服务,Apache支持多线程,性能不再一个等级
  2. runserver在debug模式下才能使用静态文件,而debug模式下运行会留存很多debug信息,时间长了内存爆炸
  3. runserver挂了就GG,但是Apache很稳定,就算挂了,也只挂掉wsgi线程
  4. runserver方便开发调试而产生,生产环境不可用

废话不多说,上干货(前提:python环境ok,django项目ok,本地可运行)

作者项目路径:F:/py_workspace/DJ/proj

Apache路径:E:\httpd-2.4.33-win64-VC15\Apache24

一、环境

  1. OS:win7
  2. Python2.7:自己安装配置环境变量即可
  3. Django1.8:详见“搞测试”公众号
  4. Apache2.4:https://www.apachelounge.com/download/
  5. mod_wsgi.so:https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz

二、Apache配置

  1. 点击https://www.apachelounge.com/download/,选择适合自己的Apache版本(32位/64位)下载,下载完成得到httpd-2.4.33-win64-VC15.zip。
  2. 解压后打开conf/httpd.conf配置文件,修改如下配置:

 

技术分享图片
 1 ServerRoot "E:\httpd-2.4.33-win64-VC15\Apache24"
 2 Listen 192.168.200.235:8090
 3 #ServerName 192.168.200.235:8090   #可以注释掉
 4 DocumentRoot "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs"    #Apache路径下htdocs文件夹路径,下同
 5 <Directory "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs">
 6 ScriptAlias /cgi-bin/ "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin/"    #Apache路径下cgi-bin文件夹的路径,下同
 7 <Directory "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin">
 8     AllowOverride None
 9     Options None
10     Require all granted
11 </Directory>
httpd.conf

 

    在Apache的bin路径下运行:httpd.exe,出现Apache控制台,访问localhost:8090,出现 It works 说明Apache服务启动成功。

    或者在httpd.exe所在路径下shift+邮件选择在此处打开命令窗口(CMD),键入:httpd.exe -k start 同样可以启动Apache服务。

    想要查看Apache服务,右击我的电脑,选择管理,查看服务即可。

三、mod_wsgi配置

  1. 点击https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz,将下载成功的压缩包解压,选择适合自己版本的so文件。
  2. 将so文件复制到Apache路径下的modules文件夹下即可。
  3. 将so文件放到指定位置后再次进行httpd.conf的项目和wsgi配置(直接在httpd.conf后面追加即可)。
技术分享图片
 1 #add mod_wsgi
 2 LoadFile "c:/python27/python27.dll"
 3 LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
 4 WSGIPythonHome "c:/python27"
 5 
 6 WSGIScriptAlias / F:/py_workspace/DJ/proj/proj/wsgi.py 
 7 
 8 WSGIPythonPath  F:/py_workspace/DJ/proj/
 9 
10 <Directory F:/py_workspace/DJ/proj/proj>  
11 <Files wsgi.py>  
12     Require all granted  
13 </Files>  
14 </Directory> 
httpd.conf

    配置完成后再次启动Apache服务,访问localhost:8090即可看到Django web项目的页面了。

四、静态文件配置

    同样是在httpd.conf配置文件后面追加即可。

 

 1 #Alias /static F:/py_workspace/DJ/proj/static  
 2 #<Directory F:/py_workspace/DJ/proj/static>  
 3 #    AllowOverride None  
 4 #    Options None  
 5 #    Require all granted  
 6 #</Directory>  
 7 
 8 #Alias /media F:/py_workspace/DJ/proj/media  
 9 #<Directory F:/py_workspace/DJ/proj/media>  
10 #    AllowOverride None       
11 #    Options None  
12 #    Require all granted  
13 #</Directory>  

五、别忘了

  修改django的settings配置:

DEBUG = False

Listen 192.168.200.235:8090

ALLOWED_HOSTS
= [*]

  这样配置,局域网内的小伙伴就可以访问到你的Django Web项目了。

  PS:因为在之前的httpd.conf配置中,已经配置listen为本机ip了,所以这里还是192xxx,有时候为了调试方便我们还在前面的listen中会配置ip为127.0.0.1:8090供自己调测使用,而不让局域网内的人访问。

六、Q&A

  Q:启动Apache的时候提示:无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题

  A:安装Microsoft.Net.Framework 4.6.1,点击下载;安装Visual C++ Redistributable for Visual Studio 2015,点击下载

 






以上是关于python Django项目以Debug模式启动和外网访问启动的主要内容,如果未能解决你的问题,请参考以下文章

010:DEBUG模式详解

Win7环境下Apache+mod_wsgi本地部署Django

intellij idea 怎样关闭所有的debug断点,??

[python]django关闭debug

django 2. 配置信息

django 2. 配置信息