前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次部署django案例

记一次部署django案例

作者头像
kirin
发布2020-05-09 15:50:01
7630
发布2020-05-09 15:50:01
举报
文章被收录于专栏:Kirin博客Kirin博客

哎,部署之路,越走越远。不懂的东西太多了,中途实在是艰难,幸好我没有放弃,

我大概部署了快2个星期了吧,从一开始的只能终端运行runserver,到昨天的只能

配着uwsgi运行,然后到今天的和nginx一起搭配工作,百度前几页的资料基本都看过

哎。。。。难受,不过也还好,最终还是成功部署上线了,主要参考的文章有。

可以看我部署成功的案例,有不会的随时可以留言,我每天都会定时的查看博客情况

django官方部署文档

django+python项目管理

宝塔面板成功部署流程

另外还有两个很重要的地方,都是涉及到数据库的

一个是sqlite3,和mysqldb,都是因为版本过低导致无法正常的运行,

具体的报错信息需要自行百度,很快就能找到解决方案的。

正文开始

因为不懂的东西太多太多所以只能摸着石头过河,走一步算一步,

首先将项目打包放在/data/wwwroot/目录下,

1.安装宝塔面板(自行百度,并安装好lnmp套件,会有提示的)

2.安装python项目管理工具,(在宝塔面板的商店里免费安装)

3.接着进入python项目管理器的版本管理,安装python3.7.2(因为系统自带的是2.7的,宝塔面板又依赖这个版本的python,所以不能卸载)

4.安装会等待一段时间,接着进入项目管理器,点击设置,然后加上日志信息daemonize = /data/wwwroot/files/files/uwsgi.log  (位置可以自己定义)

5.接着就可以简单的尝试域名映射,不出意外的话,会失败,我也不知道啥问题。很无奈。但是没关系,接着往下看

6.需要注意的是,选择启动文件的时候一定要选到app下面的wsgi.py文件,否则项目都会创建失败,选择项目选django框架,启动文件uwsgi,

7.项目创建好之后就可以尝试用域名+设置的端口尝试访问了,如果正常,就继续,有错误不能正确访问就去查看错误日志 cat /data/wwwroot/files/files/uwsgi.log

8.根据错误信息然后找到原因解决,因为终端的差异,很多情况都是预料不到的。(小技巧,把错误信息放到百度上,能够解决大部分问题,找不到就google)

9.配置成功后就开始配置nginx反向代理了,用于处理静态文件,

首先找到user root root;第一行,改成root,避免访问不了的情况,然后去到/data/wwwroot/你的项目文件给上权限,chmod 757 -R 项目名 (避免因为权限问题报错)

然后找到server配置模块

server { listen 80; server_name dd.666cc.cn; # 这里改为你的项目的域名 index index.html index.htm index.php; root /data/wwwroot/files/; # 这里指向项目的根文件 rewrite ^/$ / break;

error_page 404 /404.html; include enable-php.conf; location / { include uwsgi_params; proxy_pass http://127.0.0.1:8000; # 这里指向uwsgi的端口进行转发 uwsgi_param UWSGI_SCRIPT files.wsgi; # 这是启动文件 uwsgi_param UWSGI_CHDIR /data/wwwroot/files/; } location /static/ { alias /data/wwwroot/files/files/static/; # 这里很重要,用于处理静态文件的,一定要这一步, }

如果是部署成功后css样式丢失的话,

1.首先检查setting中的STATIC_ROOT有无设置好,

代码语言:javascript
复制
DEBUG = True

ALLOWED_HOSTS = ['*']

STATIC_URL = '/static/'
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, "static")
# ]
STATIC_ROOT = os.path.join(BASE_DIR, "static") # 就是这句

2.没有设置的话设置好之后把DEBUG改为False,接着执行静态文件收集命令,python manage.py collectstatic )

这样所有的静态文件都会被收集到static文件中(css,js,image,等等静态文件)

收集完成之后可以ctrl+shift+r无缓存刷新浏览器在尝试访问,正常都是没有问题的

按照步骤走,让部署变的简单,其实部署过之后就会觉得,就是这么简单。。。。不要被眼前的困难所打倒,加油!!

引用自文章开头的篇文章,另加上了自己感觉应该注意的细节问题,祝你好运

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档