各位大侠,我在腾讯云上用nginx+uwsgi+django3布置了一个后台,
目前想测试一下我在本地能不能用vuejs连接上数据,但是不行!!!
但网站index主页是可以访问的,www.zhishiren.info,说明大体上没问题。
我不知道啥原因,请各位费心帮我看看
第二个问题:我修改django里的setting后,需要重启nginx么?
---------------------------------以下是我配置uwsgi的ini文件:
[uwsgi]
http
socket = 127.0.0.1:8000
chdir =/www/django2020/d2020
wsgi-file= =/www/django2020/d2020/d2020/wsgi.py
---------------------------------以下是配置nginx的conf文件
http
{
server{
listen 80;
server_name www.zhishiren.info;
charset utf-8;
location /static{
alias /www/django2020/d2020/d2020/static;
}
location / {
uwsgi_pass 127.0.0.1:8000;
include /www/server/nginx/conf/uwsgi_params;
}
}
-------------------------------corsheaders也安装过了。配置如下:
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = ['corsheaders',]
MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware',]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ['*']
------------------------------------------这是django里的views里的写法:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
from requests import Response
@csrf_exempt
def ceshi(request):
if(request.method == 'POST'):
response['ok'] = 1
return HttpResponse(response)
-------------------------------这是我在本地vuejs里的写法:
created(){ this.$axios.post("http://www.zhishiren.info/ceshi/").then(response=>{this.created_ok=response.data});},!!!这里需要说一下,我试过了www.zhishiren.info:8000/ceshi/,同样无效!以前用flask做后台的时候,就没有加8000,可以联通的。
最后本地页面反馈的信息如下:
我个人博客就是django写的,跑了几个月 https://www.charmcode.cn/
也部署过Vue练习的Demo https://www.charmcode.cn/app/... 移动端
首先回答你第二个问题
更改配置后,不需要重启nginx,只需要重启django服务就行,而且nginx一般情况都是不重启的,而是重新加载配置
至于Vue axios请求失败
看你的代码,应该不是跨域问题,因为跨域,前端也不是这个报错,而且你贴的django代码,允许了所有
["*"]
, 所以我猜测是你django服务,没有启动起来或者没有被nginx正确转发。如果是启动起来的,你可以看看你django日志,看看访问记录,才好分析。
(个人是使用的
gunicorn
, 因为uwsgi
我部署老有问题)我贴一下我的
gunicorn
部署命令吧, 是使用的supervisor
守护进程,我是使用的django2.x版本希望我的答案能对你有所帮助。