腾讯云 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
原文地址:https://www.cnblogs.com/dalanjing/p/8636338.html