1. 程式人生 > >基礎架構四-APP2:使用python django來完成devops的例子

基礎架構四-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命令速查