Django是python中的一个框架,可以实现web服务器的功能,从而实现前后端的数据交互功能。
安装
- 在 Django官网上下载对应自己Python的版本;
- 解压缩下载的Django压缩包,找到里面的setup.py文件,然后打开cmd命令窗口,在其对应的路径下执行如下命令:
python setup.py install
- 在python IDE下输入:
import django
print django.VERSION
如果有以下结果则安装成功(如果没有,则重启一下试试):
(1, 11, 9, u'final', 0)
创建项目
安装完成后,我们可以创建Django项目,并启动相应的服务器。下面以创建一个名为pro的项目为例:
- 找到或者新建一个文件夹,用于存储该项目,文件夹位置无所谓。假设项目保存在名为root的文件夹。
- 在root文件夹下运行cmd,并键入:
django-admin
可以查看可以使用的命令。
- 使用startproject命令创建项目,比如项目名称为pro,则需要在cmd中运行如下命令。
django-admin startproject pro
- 回到root文件夹,则可以看到该文件夹中含有pro文件夹,pro文件夹中还有一个pro子文件夹以及一个manage.py的文件。pro项目创建完成。
启动项目服务器
切换到项目目录中,即上述的root/pro中,运行cmd,并键入:
python manage.py runserver
则可以看到该项目已经运行在http://127.0.0.1:8000/中了。
数据交互
后端的数据如何反映到web服务器中?下面以一个实例为证:
- 在root/pro/pro中新建一个python文件,此处命名为test.python,python文件的内容为:
from django.http import HttpResponse
#gly为视图名称,request为参数名,需要在页面中显示"hello"
def gly(request):
return HttpResponse("hello")
- 打开root/pro/pro/urls.py,修改其为:
from django.conf.urls import url
#导入视图
from pro.test import gly
#urlpattern,告诉Django,所有指向URL:/gly/的请求都应由gly这个视图函数来处理
urlpatterns = [
url(r'^gly/$',gly)
]
-
启动项目服务器,可以看到页面中已经有了我们需要展示的内容。启动过程中需要注意端口号后面需要加上相应的视图名称,否则会提示404错误。
Django中的CORS跨域配置
在前后端域(域名,端口和协议)不同时,有同源策略限制,因此需要进行跨域操作。传统的JSONP方法比较复杂,需要返回回调函数,并且只能GET请求。这里我们介绍CORS跨域配置,一劳永逸。
- 安装CORS,在cmd中敲入如下命令进行安装,一般在安装Django的时候已经安装了CORS。
pip install django-cors-headers
- 配置项目中的settings.py文件
把cors加入到APPS中,即将 'corsheaders'加入进去。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'corsheaders',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
加入cors的中间件,即在MIDDLEWARE中加入 'corsheaders.middleware.CorsMiddleware',
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
在该文件中加入,这个要非常注意,因为很多中文博客资料中没有提到这个,所以因为这个原因搞了很久都不对。它的默认值是False,要改成True才可以,这样才允许所有的源都被接受。
CORS_ORIGIN_ALLOW_ALL=True
以上这些设置好后,就可以进行跨源操作了,如果还不可以的话,请参考下方的官方配置文件,看是否有哪些设置需要添加。
注:安装部分参考http://www.cnblogs.com/maybe2030/p/4600872.html
创建部分参考https://jingyan.baidu.com/article/c85b7a64b7428d003aac9565.html
交互部分参考http://www.cnblogs.com/maybe2030/p/4606302.html
CORS部分https://github.com/ottoyiu/django-cors-headers/