前后台分离开发

1.前台页面运行在前台服务器上,负责页面的渲染(静态文件的加载)与跳转

2.后台代码运行在后台服务器上,负责数据的处理(提供数据请求的接口)

跨域

什么是跨域?

通常情况下,A网页访问B服务器时,不满足以下三个条件中,其中之一就是跨域访问:

1.协议不同;

2.端口不同;

3.主机不同

如何解决?

#安装django-cors-headers模块

#在settings.py中配置
#注册app
INSTALLED_APPS = [
    'corsheaders'
]

#添加中间件
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware'   
]

#允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
'''
前台代码
$.ajax({
    url: 'http://127.0.0.1:8731/login/',
    type: 'post',
    data: {
        usr: 'abc',
        pwd: '123'
    },
    success: function (data) {
        console.log(data);
        // 可以完成页面的局部刷新
    }
})

后台代码
def login(request):
    # 假设数据库存放的用户信息为 abc:123
    if request.method == 'POST':
        usr = request.POST.get('usr', None)
        pwd = request.POST.get('pwd', None)
        if usr == 'abc' and pwd == '123':
            return JsonResponse({'status': 'OK', 'usr': usr})
    return JsonResponse({'status': 'error', 'usr': None})
'''
代码

相关文章: