騰訊雲 python3+Django


!!!注意:如果已經包含了python3.5,跳過安裝3.6版本。

!!!本人安裝完3.6后,pip3安裝的包始終沒法安裝到3.6目錄下,只能安裝到3.5目錄下

1,安裝python3.6(用編譯的方法)

1下載地址

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

2解壓縮

tar -xvf Python-3.6.0.tgz

3創建安裝的路徑

sudo mkdir /usr/local/python3

4進入解壓縮后的文件夾,編譯安裝

./configure --prefix=/usr/local/python3
make
sudo make install

5創建新版本的軟連接

1、修改舊版本

sudo mv /usr/bin/python /usr/bin/python_bak

2、創建新的軟連接

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
3、檢查python的版本 python -V python-3.6.0 軟連接創建成功

6安裝pip3

sudo apt install python3-pip
sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

可以試試 pip3 -V 是對應哪個版本的python

 

2,Django

1安裝Django2.0

sudo pip3 install django
需要用pip3

2創建Django項目

進入/data文件夾,創建名為“helloworld”的項目
cd /data
sudo django-admin startproject helloworld

3修改配置文件

修改 /data/helloworld/helloworld/settings.py 文件權限為其它人可寫

sudo chmod 666 /data/helloworld/helloworld/settings.py
將  ALLOWED_HOSTS = [] 修改為  ALLOWED_HOSTS = ["115.159.157.136"] ,這樣可以允許通過 ip 訪問
在實際運營中一般要改為對應的域名

4啟動django自帶web服務器

cd helloworld
sudo python manage.py runserver 0.0.0.0:8080

5使用瀏覽器訪問,就能看到成功顯示網頁了

http://115.159.157.136:8080/

6 ctrl+C 關閉web服務器

7創建應用,到項目根目錄下

sudo python manage.py startapp learn

8把我們新定義的app加到settings.py中的INSTALL_APPS中

修改 helloworld/helloworld/settings.py

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'learn',
]

 

9將/data/helloworld/learn/views.py修改權限為其它人可寫

sudo chmod 666 /data/helloworld/learn/views.py

編輯內容

from django.http.response import HttpResponse

def hello(request):
    user = request.GET.get('user')
    if not user: user = 'world'
    return HttpResponse('hello %s' % user)

10修改 urls.py 文件權限

修改 /data/helloworld/helloworld/urls.py 文件權限為其它人可寫,並且修改為

sudo chmod 666 /data/helloworld/helloworld/urls.py

from django.contrib import admin
from django.urls import path

from learn import views as learn_views

urlpatterns = [
path('admin/', admin.site.urls),
path('hello',views.hello),
]

11啟動web服務器,瀏覽器輸入網址

sudo python manage.py runserver 0.0.0.0:8080
http://115.159.157.136:8080/hello
http://115.159.157.136:8080/hello?user=test

12關閉web服務器

3部署 uwsgi 和 nginx

1使用 pip 安裝 uwsgi

sudo pip install uwsgi

2配置 uwsgi

創建文件 /data/helloworld/uwsgi.ini ,並修改權限為其它人可寫

sudo touch /data/helloworld/uwsgi.ini
sudo chmod 666 /data/helloworld/uwsgi.ini

編輯輸入以下內容

[uwsgi]
chdir = /data/helloworld
module = helloworld.wsgi
socket = 127.0.0.1:8080
master = true
vhost = true
no-site = true
workers = 2
reload-mercy = 10     
vacuum = true
max-requests = 1000   
limit-as = 512
buffer-size = 30000
pidfile = /tmp/uwsgi.pid
daemonize = /tmp/uwsgi.log

3啟動uwsgi

找到uwsgi所在位置,並加入環境變量

whereis uwsgi

得到結果:uwsgi: /usr/local/bin/uwsgi

export PYTHONPATH=/usr/local/bin

啟動uwsgi
uwsgi --ini /data/helloworld/uwsgi.ini

4安裝nginx

sudo apt-get install nginx -y

5添加 nginx 配置文件

創建文件 /etc/nginx/sites-enabled/helloworld.conf ,並修改權限為其它人可寫

sudo touch /etc/nginx/sites-enabled/helloworld.conf
sudo chmod 666 /etc/nginx/sites-enabled/helloworld.conf
server {
    listen       80;
    server_name  115.159.157.136;

    charset utf-8;

    location / {
        uwsgi_pass 127.0.0.1:8080;
        include /etc/nginx/uwsgi_params;
        client_max_body_size      10m;
    }

    client_body_timeout  3m;
    send_timeout   3m;
    proxy_send_timeout 3m;
    proxy_read_timeout 3m;
}

6重啟nginx服務

sudo systemctl restart nginx

7測試 nginx + uwsgi + django 是否工作正常

http://115.159.157.136/hello

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM