Python web开发django第二周学习汇总

把最近django的学习再汇总一下。

生产环境部署nginx+uwsgi+python3.6:

1、先编译安装python3.6.8

因为是内网,到外网不通,所以配置全局代理

配置 /etc/profile 增加http和https的配置:

export http_proxy=10.187.185.65:8080
export https_proxy=10.187.185.65:8080

然后用命令下载 python包:

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

编译安装:

先yum安装一下openssl,因为编译安装时候可能会报错

yum install openssl
yum install openssl-devel -y

注意加 --with-ssl 

./configure --prefix=/usr/local/python3  --with-ssl

编译安装完之后,会造成yum不可用

修改yum文件   vi /usr/bin/yum  在开头加上  #!/usr/bin/python2 (根据自己的机器情况定 which python)

最后,把 python3的bin目录加入到环境变量,同时把pip3创建个连接到/usr/bin目录里

如 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

2、安装django

pip install django 会报错,因为是内网环境,我们需要加上代理参数,pip --proxy 地址:端口

配置一下整体的pip.conf ,可以放到 ~/.pip/pip.conf 里,没有的话,新建

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

然后安装django,配置环境变量 ,在profile文件里  export PATH=$PATH:/usr/local/python3/bin

然后就可以运行 django-admin命令创建项目和应用了。

3、安装uwsgi

这块以前没用过,现学现装的。

pip install uwsgi

ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi 

关于uwsgi的一些配置说明:

[uwsgi]
socket = 127.0.0.1:9090
chdir = /djproject/mysite
module = mysite.wsgi    #这里填的是相对路径
master = true
processes = 2
threads = 2
max-requests = 2000
vacuum = true
daemonize = /djproject/mysite/uwsgi.log
stats = 127.0.0.1:9001
post-buffering = 65535
buffer-size = 65535
harakiri-verbose = true
harakiri = 300
uid = nginx
pidfile = /djproject/mysite/uwsgi.pid

参数说明:

socket:使用套接字链接

http:通过http加端口的方式

wsgi-file:指定加载的wsgi文件

chdir:指定工程的绝对路径,如Django的项目路径

module:指定web应用的入口模块,如Django项目下的wsgi.py接口文件

master:启动主进程

processes:启动进程数

threads:启动线程数

max-requests:最大请求数

daemonize:指定uWSGI日志文件路径

stats:指定状态查询端口,如:127.0.0.1:9001

wsgi-file:指定启动的文件

post-buffering:设置缓冲区

buffer-size:设置缓冲区文件大小

harakiri-verbose:设置超时true为开启

harakiri:设置超时时间

uid、gid:设置用户和组

pidfile:指定启动时的pid文件路径

vacuum = true #当服务器退出的时候自动删除unix socket文件和pid文件

然后执行: uwsgi --ini uwsgi.ini  即可启动,可以查看一下端口,是否服务起来了。

#### 启动:
uwsgi --ini xxx.ini
#### 重启:
uwsgi --reload xxx.pid
#### 停止:
uwsgi --stop xxx.pid

测试uwsgi是否成功,可以用以下方法:

# 在项目目录下新建个文件,比如我的是在 /www/yxpython/yxpython里的test.py
# vim test.py
def application(env,start_response):
    start_response('200 ok',[('Content-Type','text/html')])
    return ["Hello World"]


# 在项目目录里执行 uwsgi --http :9000 --wsgi-file test.py 
#通过浏览器访问http://ip:9000能看到hello world说明成功
#然后停止服务

开发过程中,发现如果修改了py代码,需要重新启动uwsgi才会生效
uwsgi这样做的目的相信是为了效率
如果有需要py代码改动时立即生效,可以在启动uwsgi的时候加入参数
py-autoreload=1 (如果写在ini配置文件中,记得一定要=1,否则不生效)

3、安装nginx,见以前的文章。这里只写配置

# Django 2.0 项目部署
server {

    listen          80; 
    server_name     test.cn 
    charset         UTF-8;
    access_log      myweb_access.log;
    error_log       myweb_error.log;

    client_max_body_size 75M;

    location / { 

        include uwsgi_params;  必须要
        uwsgi_pass 127.0.0.1:9000;
        uwsgi_read_timeout 5;
    }   

    location /static {

        expires 30d;
        autoindex on; 
        add_header Cache-Control private;
        alias /www/yxpython/static/;
    }   
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值