WSGI

WSGI(Web Server Gateway Interface)是一个统一的Python接口标准(PEP 3333),该标准描述了Python应用如何与Web服务器通信,多个Python应用之间如何级联以处理请求。

WSGI的实现位于Python应用和Web服务器之间,从而支持将兼容的Python应用无缝部署到任何Web服务器上。

参照:https://blog.csdn.net/taiyangdao/article/details/56047246

首先安装httpd-devel


$yum install -y httpd-devel

然后安装mod_wsgi


$yum install -y mod_wsgi

安装完成之后,mod_wsgi.so会在Apache的modules目录中


$cd /etc/httpd/modules
$ls mod_wsgi*

安装完成

httpd.conf文件加上


$LoadModule wsgi_module modules/mod_wsgi.so

该配置用来连接django.wsgi,使工程被Apache加载

Channels

​ 在Django中,默认使用的是HTTP通信,不过这种通信方式有个很大的缺陷,就是不能很好的支持实时通信。如果硬是要使用HTTP做实时通信的话只能在客户端进行轮询了,不过这样做的开销太大了。  因此,在1.9版本之后,Django实现了对Channels的支持,他所使用的是WebSocket通信,解决了实时通信的问题,而且在使用WebSocket进行通信的同时依旧能够支持HTTP通信。

​ 之前已经安装完wsgi了,因为要搭建的是一个物联网平台,所以用到python channels这个库,channel库需要Twisted框架支持,所以我们先来安装twisted

下载Twisted 18.7.0

很可惜,阿里云镜像里木有Twisted,只好去pypi上下载https://pypi.org/project/Twisted/#files

在下载文件处复制链接,然后粘贴就好啦


$wget https://files.pythonhosted.org/packages/90/50/4c315ce5d119f67189d1819629cae7908ca0b0a6c572980df5cc6942bc22/Twisted-18.7.0.tar.bz2

下载下来的是bz2格式的包,再安装一个bz2解压程序


$yum -y install bzip2

开始安装


$ tar -xjvf Twisted-18.7.0.tar.bz2
$ cd Twisted-18.7.0
$python3 setup.py install

然后安装channels(此处pip可能需要更新)


$pip3 install channels

https://channels.readthedocs.io/en/latest/installation.html channels官方文档

验证一下channels安装成功!

然后,在安装channels时好像把django也带出来了ヽ(゚Д゚)ノ


$python3
>import django
>django.get_version()
'2.1'

django安装完成!(一不小心)

MysqlDB

接下来开始安装mysqldb

官方给出两个连接器

推荐使用mysqlclient,那就他了

跟着官方文档走一波,配置mysqlclient的环境,然后安装mysqlclient


$sudo yum install python-devel mysql-devel
$sudo yum install python3-devel
$pip3 install mysqlclient

安装完成,环境配置完毕,接下来开始django!

Django

找到合适的路径


$djangoadmin startprojet <MYSITE>

我就直接用mysite作为项目名称了

要修改很多地方,先来配置连接数据库,修改settings.py

# settings.py
DATABASES = {
  'default': {
      'ENGINE': 'django.db.backends.mysql',
      'OPTIONS': {
          'read_default_file': '/etc/my.cnf',
      },
'NAME':'platform',
'HOST':'',
'USER':'root',
'PASSWORD':'HduSSTA@2018',
  }
}

然后移动到有manage.py的文件夹


$python3 manage.py runserver

成功!

发表评论