使用Docker开发Django项目

背景

当多个Python项目且某些包无法兼容时,通常我们使用虚拟环境即可解决。

但是在团队中多个环境其实相对比较固定了,较少变更,如果换电脑或者新人加入需要重新一个一个配置虚拟环境并安装相应的包,会耗费很多时间,而且由于重新安装的包依赖可能会有版本变更导致各种离奇问题。

但事实上Docker不仅仅只能用于线上应用部署,我们的开发、调试环境也可以使用。

下面以Django项目来举例,为了说明方便此处有以下前提条件和假设:

  1. 基础Docker已经安装且可用
  2. Docker已经暴露了远程访问地址(使用Pycharm需要),具体方法请自行查阅文档或教材,假如为tcp://localhost:2375
  3. Docker基本命令不再详述
  4. Docker的Django环境镜像已经做好,为:myimage
  5. Django代码目录为d:\demo

演示环境为Windows 10(由于Docker集成原因,本文不适用于windows 10之前版本系统),linux和mac os可能稍有差别

开始使用

普通环境:

python d:\demo\manage.py runserver 0.0.0.0:8000
复制代码

Docker启动:

docker run -it --name demo -v d:\demo:/code -p 0.0.0.0:8000:8000 myimage python /code/manage.py runserver 0.0.0.0:8000
复制代码

在Pycharm中无缝使用

添加Docker镜像:

  1. 打开配置 pycharm > File > Settings > Project > Project Interpreter
  2. 选择镜像
    修改原Run配置:
  3. 打开原Run配置(和使用本地环境的配置一样,不再赘述)
  4. 选择刚才添加的镜像,下面三个复选框保持下图一样
  5. 上一步选择镜像后下面会出现Docker container settings:
  6. 点开进行编辑,可以看到此时已经有了Volume bindings,还需要一个端口映射
  7. 再次Run就已经是从容器中启动了(可以看到容器ID),使用Debug启动也是可以的
  8. 底部还有个选项卡,此可以一键打开Django shell

问题

Q:使用Python Console打开django shell报错,错误示例:

ModuleNotFoundError: No module named 'cms'
复制代码

A:Pycharm > Settings > Build, Execution, Deployment > Console > Django Console 勾选如下两项,重新打开底部Python Console即可

转载于:https://juejin.im/post/5c25c8e75188252d1d34d998

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值