1. 程式人生 > >django環境搭建和第一個介面

django環境搭建和第一個介面

django環境搭建

首先下載需要的原始碼包然後按照如下步驟安裝

yum install apr-devel
yum install apr-util-devel
yum install atlas-devel
cd python && ./configure --prefix=/home/work/env/python -enable-shared CFLAGS=-fPIC
cd setuptool && /home/work/env/python/bin/python setup.py install
cd pysqlite && /home/work/env/python/bin/python setup.py install
cd django && /home/work/env/python/bin/python setup.py install
cd redis && make && ln -s redis-cli /home/work/env/redis/redis-cli && ln -s redis-server /home/work/env/redis/redis-server
cd redispy && /home/work/env/python/bin/python setup.py install
cd redisco && /home/work/env/python/bin/python setup.py install
cd httpd && ./configure --prefix=/home/work/env/apache --enable-rewrite --enable-so --enable-headers --enable-expires --enable-deflate

配置apache

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /home/work/wwwroot/myproject/myproject/wsgi.py
WSGIPythonPath /home/work/wwwroot/myproject
<Directory /home/work/wwwroot/myproject>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>

配置好以後,建立一個django的project

django-admin.py startproject myproject

manage.py startapp test

註冊app,編輯myproject/settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'common',#註冊APP
    'apachereduce',
    'mysqlreduce',
)
 
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    #'django.middleware.csrf.CsrfViewMiddleware',#因為是純後端API,前邊還有php作為驗證和中轉等,所以這裡去掉csrf驗證
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

配置url轉發

myproject/urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
 
urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'reduceserver.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    # url(r'^admin/', include(admin.site.urls)),
    url(r'^api/v1/test/', include('test.urls')),
)
test/urls.py
from django.conf.urls import patterns, url
from test import views
 
urlpatterns = patterns('',
    url(r'^(.*)/_hello$', views.hello, name='hello'),

)
test/views.py
from django.shortcuts import render
from django.http import HttpResponse
import json
 
def callreduce(request, index):
    #testget = request.GET.get('testget')#get引數獲取方法
    token = request.META.get('HTTP_TOKEN')#head引數獲取方法,注意引數名實際為“CTOKEN”,但是在django裡需要在前邊加“HTTP_”防止和內建的引數混淆
    post = json.loads(request.body)#post引數獲取方法
    query = post['query']
 
    return HttpResponse('Hello World!!!')