基礎架構四-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.csdn.net/likunshan/article/details/81119723
-
-
CSRF問題
-
POST請求403:https://blog.csdn.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命令速查