视频6分钟,直接运行不会报错的方法是什么?

视频6分钟,直接运行不会报错的方法是什么?

视频6分钟,老师说因为依赖django环境变量,要引入models才行,所以直接run会出错,然后转去控制台进入manage.py shell去执行了,但我还是没搞懂为什么会报错,如果要直接run,该如何做呢?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学,你好。python manage.py shell和python都用于启动交互解释器,但对于加载django,需要设置配置文件,老师说的环境变量指的就是配置文件settings,Django框架的大部分子系统,包括模板系统,都依赖于配置文件,如果Django不知道使用哪个配置文件,这些系统将不能工作,因此使用python manage.py shell打开交互解释器,才能使用django中定义的内容。

如果直接run,可在项目中直接导入如下代码:

import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test_django.settings")
django.setup()

如:

http://img1.sycdn.imooc.com//climg/5f044751094b80fb10280359.jpg

但这会带来很多导入问题,建议在项目中不要直接这样使用。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 江民川 提问者 #1
    是因为manage.py是属于Django框架的,所以python manage.py shell就能直接加载其配置文件吗?
    2020-07-07 18:05:22
好帮手慕笑蓉 2020-07-07 19:09:25

同学,你好。 manage.py里的内容是用于配置Django框架,里面指定了配置文件settings,如:

http://img1.sycdn.imooc.com//climg/5f0457bc09654f0f10240182.jpg

执行python manage.py shell会运行manage.py中的内容,因此运行manage.py就可以加载其配置文件。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

提问者 江民川 2020-07-07 16:10:55

后面老师还说,进入shell就自动加载了环境变量。这是为什么?不都是在同一个env下吗?这里的环境变量指的是什么东西?突然来一个直接运行会报错,搞得我不知道什么时候需要注意什么时候可以直接运行了。有什么说法吗?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师