基础架构四-APP2:使用python django来完成devops的例子
前言:
上一篇综合运用了gitlab/docker/python flask/nginx/uwsgi/mysql等工具和我们搭建的DEVOPS环境,完成了学生管理系统的CICD实例,本篇将flask改为django来完成相同的功能,继续熟悉使用我们搭建的CICD环境和django开发的基本方法
文中提到的程序和脚本见:https://github.com/Thomas-YangHT/python/tree/master/django
step1. 在gitlab页面中新建一个项目project
-
[group]--yunwei下新建[project]--django
-
git clone 到本地
step2. 准备django的应用环境
-
docker运行环境:dockerfile.django
-
uwsgi的配置:wsgi.ini
-
创建镜相image:docker-build.sh
-
运行一个实例container: docker-run.sh
-
查询结果:docker logs django
step3. 编写django程序:
-
启动一个新项目:djangoadmin
-
目录结构:
-
-
配置wsgi.ini
-
修改settings.py
-
模板设置:templates
-
静态文件设置:static
-
路由urls.py
-
view.py
-
编写students.py
step4. 提交、修改、测试循环,直至成功
-
修改.gitlab-ci.yml
-
git提交到gitlab代码仓库
-
在页面上查看cicd--pipelines构建结果
-
刷新students查询页面查看结果
-
遇到问题再修改、提交、验证
Que:遇到的问题:
-
-
django版本:
-
yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-ocata/rdo-release-ocata-3.noarch.rpm
-
yum install -y python-django
-
不同的版本上运行会导致启动失败,由于settings内容不同;
-
2.0以上url语法变化
-
1.18版本来源于openstack-ocata源;
-
-
其它应用版本:
-
1.8.14
-
2.0.17.1
-
Python 2.7.5
-
nginx version: nginx/1.12.2
-
nginx -V
-
python -V
-
uwsgi --version
-
django-admin --version
-
-
uwsgi.ini的配置问题:
-
不同版本语法不一致
-
网上找的基本都没法用
-
-
模板
-
改为jiaja2模板,兼容flask做的模板 settings.py
-
详见https://blog.****.net/likunshan/article/details/81119723
-
-
CSRF问题
-
POST请求403:https://blog.****.net/xavierqwb/article/details/65449189
-
或者在settings.py里注释掉:settings —> 找到MIDDLEWARE —> 注释掉
-
-
REFER:参考资料:
-
基础 https://www.cnblogs.com/lgeng/p/7363852.html
-
基础 https://thomas-yanght.github.io/www.runoob.com/django/django-tutorial.html
-
提高 https://www.cnblogs.com/lgeng/category/1061167.html
-
提高 https://www.cnblogs.com/eaglesour/category/1182428.html
-
其它 https://fabric-chs.readthedocs.io/zh_CN/chs/api/contrib/django.html
-
其它 https://docs.djangoproject.com/en/dev/topics/settings/
-
官方设置: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/uwsgi/
-
uwsgi: https://uwsgi-docs.readthedocs.io/en/latest/Management.html
-- The End --
Linux命令速查