服务器搭建

Django 服务器搭建

服务器端的搭建,选用 http 接口。优点是所有设备均可以进行指令发送和接收,间接达到了跨平台的功能。同时考虑到后台程序均使用 python 接口,因此这里使用Django进行服务器接口的搭建。

Django 教程可以点击链接 比较好的一套教程,这里的环境搭建基本参照此教程

http://www.ziqiangxuetang.com/django/django-tutorial.html

如果要了解此文搭建环境过程,务必要掌握Django基础知识,多看看链接教程。本文可能会有瑕疵。

目前使用的配置
centos6.5 64位
python 2.6.6
Django 1.6.x

话不多说,直接上流程

ps: 这里的流程都是在我的环境上执行的,可能环境不同,会造成各种问题,具体有问题可以参照教程,或者留言,我看看能不能解决

  • 安装pip
yum install python-pip

如果命令执行失败,可以使用其他方式安装pip
  • 安装Django
(sudo) pip install Django 安装最新版
(sudo) pip install Django==1.6 或者 pip install Django==1.10.3 安装指定版本
  • 检查是否安装成功
>>> import django
>>> django.VERSION
(1, 6, 0, 'final', 0)
>>> 
>>> django.get_version()
'1.6.0'
  • 新建项目
django-admin.py startproject http

创建成功后会有以下目录结构
http
├── manage.py
└── http
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • 新建应用
python manage.py startapp httpmodule  # httpmodule 是一个app的名称
  • 修改配置
views.py    # 这个是我这个项目的主要文件,所有逻辑也会在这里进行体现
urls.py     # 网页对应的内容 
settings.py # 配置
wsgi.py     # 配置apache要用到
修改settings.py

修改/http/http/settings.py

把我们新定义的app加到settings.py中的INSTALL_APPS中

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'httpmodule',
)
修改urls.py

修改/http/http/urls.py

from django.conf.urls import patterns, include, url 

from django.contrib import admin
admin.autodiscover()
from httpmodule import views as http_views


urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'http.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^get/$', http_views.get, name='get'), # 新增get方法 需要对应到views.py
    url(r'^set/$', http_views.set, name='set'), # 新增set方法 需要对应到views.py
)

这里的方法定义成功后,相对应的访问http请求就变成 :
http://ip:port/get | http://ip:port/set

修改wsgi.py

这个文件需要搭配apache,
一般先要安装一下wsgi的环境包

yum install mod_wsgi

如果安装失败,可以下载源码包进行安装,同时要注意的是不同的python版本可能需要对应不同版本的mod_wsgi

然后修改http/http/wsgi.py

import os

from os.path import join,dirname,abspath

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "http.settings")
PROJECT_DIR = dirname(dirname(abspath(__file__)))                   
import sys                                                          
sys.path.insert(0,PROJECT_DIR)                                          

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

具体为什么这么改,可以参照链接教程

修改views.py

然后修改http/httpmodule/views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def set(request):
  # To do
  #example:
  message = request.GET.get('a','error')
  return HttpResponse(message)

def get(requset):
  # To do
  return HttpResponse(result)

这里 # To do可以写上自己的逻辑代码,也可以调用自己封装的python脚本。

request:请求包
比如http请求是 http://ip:port/set?a=hello
那么 message获取到的内容就是hello
HttpResponse(message)就会返回内容,如果打开浏览器,正常的话应该能看到“hello”

之后就是httpd,使用centos自带的httpd服务。

  • 配置httpd.conf

编辑/etc/httpd/conf/httpd.conf #如果是yum安装的就是这个配置文件
在配置文件最后加上

<VirtualHost *:8000>
     ServerName example.com
     ServerAlias example.com
     ServerAdmin example@163.com

     Alias /httpmodule /home/smart/web/http/httpmodule #需要修改

     <Directory /home/smart/web/http/httpmodule>       #需要修改
          Options Indexes FollowSymLinks
          Order deny,allow
          Allow from all
     </Directory>


     WSGIScriptAlias / /home/smart/web/http/http/wsgi.py #需要修改
     #WSGIDaemonProcess www.example.com python-path=/usr/local/lib/python2.6/site-packages


     <Directory /home/smart/web/http/http>  #需要修改
     <Files wsgi.py>
          Order deny,allow
          Allow from all
     </Files>
     </Directory>
</VirtualHost>

以上“#需要修改”的内容,均需要对应到你们自己的项目路径

然后启动httpd

service httpd start

这个服务器的关键就是提供了http接口,我可以通过http请求将所有设备的请求都发送至服务器,并通过python脚本作解析数据和处理数据的功能。

这里我的views.py调用的是数据推送脚本,能够将所有数据推送到消息队列中,并能被所有脚本subscribe到,这块内容可以看”python结合rabbitmq做总线订阅式的总线式程序”

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值