python-django 項目部署,不難!

2020-12-19 linux運維菜

前言

用django開發項目的時候,都是用debug=True模式運行,所以靜態文件都是django去處理。在實際項目中,還是需要多線程以及專門處理靜態文件的服務來配合,才能提升整個系統的性能。因此,可以選用nginx+gunicorn+django的架構進行部署。

django項目結構

使用命令python startproject mysite創建項目,然後進入mysite文件夾 python manager.py startapp blog創建自己的應用,就是下面的目錄結構了,然後創建static目錄來存放靜態文件,創建templates來存放模板文件。

mysite/├── blog│ ├── admin.py│ ├── apps.py│ ├── __init__.py│ ├── migrations│ ├── models.py│ ├── __pycache__│ ├── tests.py│ ├── urls.py│ └── views.py├── db.sqlite3├── manage.py├── mysite│ ├── __init__.py│ ├── __pycache__│ ├── settings.py│ ├── urls.py│ └── wsgi.py├── static│ └── 1.img└── templates└── blog

配置模板和靜態文件路徑

修改配置文件mysite/mysite/settings.py

找到TEMPLATES中的DIRS的key,在列表裡面添加templates的路徑,有因為工作目錄是mysite,所以直接寫相對路徑即可。

在同一個配置文件裡面找到STATIC_URL,在錢見加上STATICFILES_DIRS的設置,列表裡面填寫靜態文件的路徑即可。

gunicorn

直接使用pip install gunicorn就可以安裝了。

cd ~/mysitegunicorn -w 3 -b 127.0.0.1:8080 mysite.wsgi:application

這樣子gunicorn就跑起來了,直接訪問127.0.0.1:8000就可以看到自己的網站了。

-w 是指開啟幾個進程進行處理

-b 是指綁定的監聽IP及埠

mysite.wsgi:application,前半截很容易理解,就是調用了mysite下的wsgi.py,而後面的application就是wsgi.py裡面定義的一個對象,所以是固定的。

但是,你會發現靜態文件都訪問不到了。這時候就需要nginx

nginx配置

在nginx配置文件nginx.conf,修改對應的server就可以了。

server{listen 80;監聽的埠location / {proxy_pass http://127.0.0.1:8000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}# location 顧名思義,定位,就是當訪問 / 的時候,nginx會將請求轉給本地的8000埠,而後面的設置都是一些基本的配置,可以直接用location /static {alias /home/project/mysite/static;}# 這個就是配置靜態文件的地方,要用絕對地址,對應最開始的目錄形式,假設project就在/home/project/mysite下面,那麼這樣配置就可以的了.}

配置完以後啟動nginx,然後直接訪問127.0.0.1就可以訪問到自己的網站。

人生苦短,我用Python!

相關焦點

  • Python常用庫大全
    ptpython – 高級交互式Python解析器, 構建於python-prompt-toolkit 之上。 caniusepython3 – 判斷是哪個項目妨礙你你移植到 Python 3。 cookiecutter – 從 cookiecutters(項目模板)創建項目的一個命令行工具。 doitlive – 一個用來在終端中進行現場演示的工具。
  • python包管理之pip,其實很簡單!
    官方地址:https://pypi.python.org/pypi/pip下載解壓後,進入目錄直接運行python安裝就可以了python setup.py install(PS:Python3編譯安裝就默認帶了pip了)
  • python之通過pip安裝Django
    安裝好Python插件後,新建一個項目時,你就會看到Python選項,並且,其中就在Django,勾選後點擊next,輸入項目名和路徑,Finish即可。創建Django項目耐心等待一會兒,你將得到一個Django項目,目錄如下:
  • django session保存 - CSDN
    # Application definitionINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', # 這一行 'django.contrib.messages
  • 如何使用Visual Studio工具創建python項目
    python一般情況下,我們使用Visual Studio進行C#、C++和C語言項目進行開發。隨著工具不斷完善,現在也可以進行python項目開發了。那麼,如何在Visual Studio 2019工具上創建python項目?操作步驟:1、通過快捷方式或電腦開始菜單,雙擊打開Visual Studio 2019工具
  • Python最佳經典學習路線
    如何學習Python python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例) (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,
  • Python每日3題-Django、Flask、Tornado的對比?
    python web框架的先驅,第三方庫豐富 Flask 是輕量級的框架,自由,靈活,可擴展性強,核心基於Werkzeug WSGI工具 和jinja2 模板引擎 適用於做小網站以及web服務的API,開發大型網站無壓力,但架構需要自己設計 與關係型資料庫的結合不弱於Django,而與非關係型資料庫的結合遠遠優於
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • 通過抓包實現Python模擬登陸各網站原理分析
    首先安裝demo依賴的web框架django,並測試是否安裝成功:  如果有是在另外一個python文件中使用這個cookie的話,再打開url之前需要先載入cookie:  教程取自實驗樓。
  • 如何在Visual Studio調整python可啟動文件
    >python類和對象在Visual Studio開發工具中,創建python應用程式,默認有個python文件,這個為主啟動文件;如果再創建一個python文件,想要運行這個文件,需要將其設置為主啟動文件,就可以調試了。
  • 天津python培訓花費多少錢?5個月速成python大牛
    天津Python培訓 不管是開發、測試亦或是與python技術無需相關的小白,心裡多多少少都有一個成為技術大牛的夢,畢竟「夢想總是要有的,萬一實現了呢」!但學習python我們需要花費多少錢呢?怎麼樣才能用zui短的時間讓我們自己成為python業界大牛?今天誠築說小編來告訴大家如何用5個月的時間讓你成為業界大牛。 一:python學習要花費多少錢? 不論是什麼學習,我們zui關心的問題是要花多少錢?
  • python能做什麼
    python能做什麼?書聲琅琅Python培訓老師介紹,最近許多的朋友諮詢,聽說python很火,甚至可以超越JAVA,因此很想學這個python,但是不知道python能做什麼,能完成一些什麼項目呢?針對這個問題,今天徐老師跟大家來聊一聊python能做什麼的話題。
  • 工程師親筆丨如何使用 CMSIS-NN 在 OpenMV 上部署 Caffe 模型?
    在 Arm Cortex-M 上部署模型量化模型。將模型轉換為二進位格式。在 OpenMV 上部署。運行笑臉檢測。完成本指南中的步驟後,您將能夠在 Arm Cortex-M7 處理器上部署具有笑臉識別功能的 Arm 神經網絡模型。 部署流程如下圖所示:
  • 如何在python語言代碼實現間隔加減法
    >pythondjango在使用python語言時,除了可以實現常規的功能之外,還可以用於數學計算。項目選擇空python文件,添加4、打開新建的python文件,定義兩個變量num和result,然後使用for……in循環,當i對2取模得到0,就進行相加;如果對2取模結果為1,就相減
  • Python基礎教程之小白入門篇
    為什麼選擇pythonPython可以說是程式語言中罕見的既簡單又強大的一門語言,python語言簡潔,語言優雅,功能強大,使用python,你只需要專注於問題的解決方案,而不是苦惱於程式語言的語法和結構。Python的發明者「Guido van Rossum」給python貼的標籤是「簡潔」和「優雅」,即對於程式語言的新手都能迅速上手使用python。
  • 當下流行的python 你知道多少?
    最近有在學習python,我來講講關於python的事情!現如今媒體發達的現在,即使你是外行人,你關注的工智能或者大數據相關文章裡,總會看到python的身影,涉及人工智慧或大數據。目前市面上大部分的智能算法和大數據算法,絕大部分是基於python進行開發的!這也導致目前的智能相關產品開發過程中,基本都涉及python語言的開發與招聘!!
  • 澳大利亞Tilt公司計劃在維多利亞州部署多個電池儲能項目
    【能源人都在看,點擊右上角加'關注'】據外媒報導,澳大利亞可再生能源開發商Tilt Renewables公司日前計劃在其開發投資組合中新增三個大型電池儲能項目,這三個項目都部署在維多利亞州。該公司計劃部署的三個電池儲能系統的總容量將達到150MW/300MWh,並建議使用規模較小的Snowtown電池儲能系統部署,其容量約為20MW/42MWh。預計Tilt公司將在2020年財政年度中對其中一個大型電池儲能項目作出投資決定,該投資計劃於4月1日開始。
  • 推薦7款好用的Python工具
    PuLP是一個用python編寫的線性編程建模器。PuLP可以生成LP文件並使用高度優化的解算器,GLPK,COIN CLP / CBC,CPLEX和GUROBI來解決這些線性問題。Matplotlibmatplotlib是一個python 2D繪圖庫,可以生成各種硬拷貝格式和跨平臺交互式環境的出版物質量數據。
  • python和java哪個好
    python和java哪個好?書聲琅琅Python培訓老師介紹,這兩年來IT教育發展迅速,程式語言隨著發展也日益月異,比較火的Python語言發展迅速,與傳統使用的JAVA語言來說,火爆程度差不多,就有同學問了,python和java這兩個語言到底哪個好呢?