记一次部署和调试 Django 项目

创建并运行项目

安装Django指定版本:pip install django==1.11.29

在Python中创建Django项目,选择 Vultualenv 和 python2

项目结构

该说不说有点丑奥

在这里插入图片描述

运行Django项目:python manage.py runserver

启动报错
djangoProject/djangoProject/settings.py", line 57, in <module>
   'DIRS': [BASE_DIR / 'templates']
TypeError: unsupported operand type(s) for /: 'str' and 'str'

解决办法:修改 settings.py 57行的代码为 'DIRS': [str.format(BASE_DIR, '/templates')]

再次运行:python manage.py runserver,项目运行成功。
在这里插入图片描述
在这里插入图片描述

参考

Django实践:创建项目,debug–TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘,分析与解决

尝试启动已有项目

项目路径错误

项目在部署服务器上运行得好好的,clone到本地部署时却发现项目路径发现了错误,无法引用 lib 目录下的文件。

from lib.public import md5, get_dnslog
ImportError: No module named public

在这里插入图片描述

解决办法1:注意,Django的项目根目录设置在 project/web/settings.py,所以不需要傻傻地逐个修改 py 文件。

添加代码如下,仅供参考,成功解决本地的项目路径问题。

import os, sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, ".."))

解决办法2:这两天下载了virtualenv模块、pipreqs模块,导致 lib 库的重名带来找不到指定目录。发现之前无误的脚本,也开始报错,直接把 lib 模块删除,一步到位。

登陆跳转问题

项目在访问前需要先在功能平台登陆,然后跳转到功能平台的项目地址。本地部署项目,需要把这一步给删掉。
在这里插入图片描述
自定义的 /admin 可以访问,但访问项目定义的url时就会跳转到某个网站,然后报错501。从跳转的站点推测,应该是身份验证功能。

由于本地不需要身份验证,也为了方便,接下来需要找到身份验证的代码,然后注释掉。

1.尝试调试找到验证点

在Configuration添加参数 runserver 8081, 调试 manage.py 文件。

下断点,开启Debug,单步调试,发现程序总是报错退出,但是直接执行又可以正常开启服务且不会报错。(猜测程序应该是执行到某一位置就开始监听,而不是继续单不执行,理论上绝对可以调试,不过需要比较多的时间)

在网络和星球查找Django项目调试资料,发现网络上的大多是如何配置,没有找到真正单步调试分析Django项目的,遂弃。

在这里插入图片描述

2.注释登陆验证代码-成功

通过查找资料,得知Django的两个重要文件:

文件说明
web/web/urls.py用于配置url的映射
web/app/views.py通过 function(request) 的方式编写网页

(1)打开 views.py 文件,搜索 login 发现 class _login_(object),把登陆相关操作的代码注释掉。

(2)python manage.py runserver 8081启动项目,发现 urls.py 报错,把该文件登陆相关映射给注释掉。

再次启动项目,发现启动成功。注意,反复启动可能会报错 Error: That port is already in use,ps 查看进程然后 kill -9 pid 即可。

(3)启动成功后发现还是会进行身份验证,并且报错501。想到页面的编写就在 views.py,打开文件发现每个页面函数都有一行 @cookie_check(),全部注释掉。

访问项目的页面,发现访问成功,此时项目的基本功能已经可以使用了。(努力没有白费,没有放弃本地部署终究有了收获)
在这里插入图片描述

参考

使用PyCharm配合部署Python的Django框架的配置纪实,对 urls.py 和 views.py进行了简单说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值