• django项目前后端分离跨域配置


    创建django项目

    django-admin startproject 项目名称
    
    例如:
    
    django-admin startproject mydjango
    

    创建app应用

    python manage.py startapp 应用名称
    
    例如:
    
    python manage.py startapp myapp
    

    注册应用路由(打开mydjango项目文件的urls.py)

    from django.contrib import admin
    from django.urls import path,include  #导入include包
    
    urlpatterns = [
       path('admin/', admin.site.urls),
       path('myapp/', include('myapp.urls')), #注册应用路由
    ]
    

    配置Django跨域请求处理

    1、安装DRF

    pip install djangorestframework
    

    2、安装cors组件

    pip install django-cors-headers
    

    3、django配置文件(settings.py)安装corsheaders、rest_framework应用和添加中间件同时注册app应用

    INSTALLED_APPS = [
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
       'corsheaders',
       'rest_framework',
       'myapp'
    ]
    
    MIDDLEWARE = [
       'django.middleware.security.SecurityMiddleware',
       'django.contrib.sessions.middleware.SessionMiddleware',
       'corsheaders.middleware.CorsMiddleware', #这里是新增的中间件
       'django.middleware.common.CommonMiddleware',
       # 'django.middleware.csrf.CsrfViewMiddleware',
       'django.contrib.auth.middleware.AuthenticationMiddleware',
       'django.contrib.messages.middleware.MessageMiddleware',
       'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
    #设置跨域
    CORS_ALLOW_CREDENTIALS = True
    CORS_ORIGIN_ALLOW_ALL = True
    

    4、数据库的配置

    DATABASES = {
      'default': {
             'ENGINE': 'django.db.backends.mysql', #数据库引擎
             'NAME': 'edu',                       #数据库名
             'USER': 'root',                       #用户名
             'PASSWORD': 'root',                   #密码
             'HOST': '',                           #数据库主机,默认为localhost
             'PORT': '',                           #数据库端口,MySQL默认为3306
             'OPTIONS': {
                'autocommit': True,
            }
       }
    }
    

    5、settings.py中静态文件的配置(可选)

    STATIC_URL = '/static/'
    
    STATICFILES_DIRS=[
        os.path.join(BASE_DIR,'static')
    ]
    
    #定义上传文件夹的路径
    UPLOAD_ROOT = os.path.join(BASE_DIR,'static/upload')
    

    在myapp应用中的views.py中写入逻辑

    from django.shortcuts import render
    
    # Create your views here.
    from django.views import View
    from django.core.serializers import serialize
    from rest_framework.response import Response
    from rest_framework.views import APIView
    
    
    class Index(APIView):
       def get(self, request):
           pass
    
           return Response({'code':200})
       def post(self,request):
           pass
    
           return Response({'code':200})
    
    

    注册视图(views.py)路由,进入myapp应用创建urls.py文件

    from django.urls import path
    from myapp.views import Index  #导入views.py中的Index类,并注册路由
    urlpatterns = [
       path('index/',Index.as_view()),
    
    ]
    

    myapp应用中的models.py定义模型

    from django.db import models
    
    class User(models.Model):
       username = models.CharField(max_length=128, verbose_name='用户名')
       password = models.CharField(max_length=128, verbose_name='密码')
       class Meta:
            db_table = "user"
            verbose_name = '用户表'
            verbose_name_plural = verbose_name
    

    将模型提交到数据库中

    python manage.py makemigrations
    
    python manage.py migrate
    

    启动django项目

    python manage.py runserver 0.0.0.0:8000
    
  • 相关阅读:
    也谈一下关于兔子的问题
    关于sql函数返回表
    关于1000瓶水的问题
    WWF的疑问
    天干和地支
    在若干个整数中找到相加之和为某个整数的所有组合的算法
    输出一个数组的全排列
    新的博客, 新的里程
    学习搜索引擎心得(10.2511.25)
    下一个阶段(用C++重写Lucene的计划)
  • 原文地址:https://www.cnblogs.com/lihouqi/p/13814946.html
Copyright © 2020-2023  润新知