推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
sayhier
V2EX  ›  Python

每次部署 Django 项目都抓狂,求正确姿势

  •  
  •   sayhier · Aug 20, 2018 · 6474 views
    This topic created in 2997 days ago, the information mentioned may be changed or developed.

    个人练手用的小项目,用的是 Django 的后端和 Bootstrap 前端,部署用 gunicorn + suervisor + nginx 在 ubuntu 下,每次搞一堆配置文件都不顺利,究其原因还是对原理不够了解,求详细解读,或求推荐其他的部署方案。

    24 replies  •  2018-08-22 21:57:16 +08:00
    0xABCD
    0xABCD
    Aug 20, 2018
    1
    把报错信息贴出来,大家一起帮你看看。
    tanglangshan
    tanglangshan
    Aug 20, 2018
    2
    docker 就是解决这个问题的
    vakara
    vakara
    Aug 20, 2018 via Android
    3
    docker 可以帮你解决这些问题。
    pepesii
    pepesii
    Aug 20, 2018 via iPhone
    4
    你写个 bash shell,或者 ansible,以后就一样的了
    Cbdy
    Cbdy
    Aug 20, 2018
    5
    我一度认为,Docker 就是为 Python 而发明的技术
    chengxiao
    chengxiao
    Aug 20, 2018 via iPhone
    6
    感觉就第一次部署有难度吧,后面熟了直接把配置文件 uwsgi 和 nginx 的配置文件路径参数一改就行了
    dcalsky
    dcalsky
    Aug 21, 2018
    7
    练手小项目直接 python ./manage.py runserver 0.0.0.0:8000 够用。等你多了解了一个 wsgi,再用 uwsgi, gunicorn 之类的 web server.
    julyclyde
    julyclyde
    Aug 21, 2018
    8
    如果你把文件拷贝过去不能运行,用了 docker 也照样不能运行
    devtk
    devtk
    Aug 21, 2018
    9
    docker~
    lihongjie0209
    lihongjie0209
    Aug 21, 2018
    10
    换个语言喽, 用 docker 有必要吗?
    nimdanoob
    nimdanoob
    Aug 21, 2018
    11
    docker 了解一下
    tt67wq
    tt67wq
    Aug 21, 2018
    12
    docker swarm
    zhengxiaowai
    zhengxiaowai
    Aug 21, 2018
    13
    Django 部署很简单啊,官网文档都有,另外写个 makefile。。。反正我这个 makefile 用了 2 年了。。
    chengxiao
    chengxiao
    Aug 21, 2018
    14
    感觉就是楼主要分清楚 Nginx gunicorn suervisor 这三个都是负责干嘛的
    一上来可以先不用 suervisor 这东西主要负责进程管理 快速重启和启动 gunicorn 和 nginx 的
    搞清楚 nginx 和 gunicorn 或者 uwsgi 的关系 基本就能理清楚和排查错误了
    scriptB0y
    scriptB0y
    Aug 21, 2018
    15
    asuraa
    asuraa
    Aug 21, 2018
    16
    我用的 dokku 部署的 也即是 heroke 每次部署只需要 push 一下就行了
    xanthu
    xanthu
    Aug 21, 2018 via Android
    17
    1.你可以试试 cookiecutter-django,命令行自动生成配置好的项目,也可以自己写 cookiecutter


    2.建议开发环境和部署环境分开,可以继承 Configuration,写配置类,我一般是一个通常配置文件,一个开发配置文件,一个部署配置文件...然后每次只要在 manage.py 里指定下环境变量就可以了。


    3.Pycharm 直接连接 docker 环境进行开发


    有段时间没用 Django 开发了,可能有说错的地方....
    sayhier
    sayhier
    OP
    Aug 21, 2018 via Android
    18
    看来推荐 docker 的多
    herozhang
    herozhang
    Aug 21, 2018
    19
    用 docker 吧
    daiqiangbudainiu
    daiqiangbudainiu
    Aug 21, 2018
    20
    为啥不用 uwsgi 呢
    est
    est
    Aug 21, 2018
    21
    @Cbdy 然而还是 go 用的多。。
    zzlettle
    zzlettle
    Aug 21, 2018 via iPad
    22
    有谁用 systemd 来部署虚拟环境中的 gunicorn Django 的教程吗?
    gladuo
    gladuo
    Aug 21, 2018
    23
    gunicorn -d 其实都贼稳,不用担心
    cosven
    cosven
    Aug 22, 2018
    24
    写了一个示例: https://gist.github.com/cosven/e308359b83df5cbbe7398b4a95247add

    Python 3 + venv + gunicorn + NGINX + supervisor
    (配合其它原理文章食用更佳)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2986 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    ♥ Do have faith in what you're doing.