第四章:Django绑定数据库并发布数据-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]

        本章介绍如何利用Django绑定mysql数据库生成数据表单,具体步骤及代码如下:

#1.Django.settings绑定mysql数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'ecotourism',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'127.0.0.1',
        'PORT':'3306',
    }
}

#2.app.models中设置数据库字段
from django.db import models
from django.contrib.auth.models import User
class Company(models.Model):
    name=models.CharField(max_length=50)
    number=models.BigIntegerField(primary_key=True)
    type=models.CharField(max_length=20)
    location=models.CharField(max_length=100)
    lnt=models.CharField(max_length=50)
    lat=models.CharField(max_length=50)
    createyear=models.BigIntegerField()
    createmonth=models.BigIntegerField()
    createday=models.BigIntegerField()
    assets=models.CharField(max_length=50)
    boss=models.CharField(max_length=20)
    area = models.CharField(max_length=100, null=True, blank=True)
    def __str__(self):
        return self.name
    class Meta:
        verbose_name='企业统计'

#3.要实现后端数据与前端的交互,需要在app中创建seriallizers文件,app.seriallizers设置如下:
from rest_framework import serializers
from .models import Company

class CompanySerializer(serializers.ModelSerializer):
    class Meta:
        model=Company   #属性字段model将模型Product与ModelSerializer对象绑定
        fields='__all__'#fields设置哪些字段转换为序列化换字段

#4.依次在终端输入命令
python manage.py makemigrations
python manage.py migrate



输入命令后mysql中会生成相应表单

第四章:Django绑定数据库并发布数据-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]_第1张图片

接着需要将数据库数据发布成服务前端才能接收,需要在Django按以下设置:

#1.Django.settings中要设置跨域访问corsheaders
INSTALLED_APPS = [
    #'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    #'django.contrib.messages',
    #'django.contrib.staticfiles',
    'User',
    'supervision',
    'emergency',
    'envirment',
    'analysis',
    # 设置跨域访问
    'corsheaders',
    # 设置API框架
    'rest_framework',
    'rest_framework.authtoken'
]
CORS_ALLOW_CREDENTIALS = True #允许请求是否携带cookie
CORS_ORIGIN_ALLOW_ALL = True #允许所有域名发送请求
CORS_ORIGIN_WHITELIST = ('http://localhost:8080',) #部署Vue的服务器ip地址

CORS_ALLOW_METHODS = ( #设置http请求方式
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)

CORS_ALLOW_HEADERS = (  #设置非标准的请求头
    'XMLHttpRequest',
    'X_FILENAME',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

#2.在Django.views中设置:
from django.shortcuts import render
from .models import Company,Licence,Hygiene,Complain
# Create your views here.
from .seriallizers import CompanySerializer,LicenceSerializer,HygieneSerializer,ComplainSerializer
from rest_framework.views import APIView
from rest_framework.response import Response

class company(APIView):
    # GET请求
    def get(self, request):
        q = Company.objects.order_by('number')
        serializer = CompanySerializer(instance=q, many=True)
        return Response(serializer.data)

如此运行Django:python manage.py runserver 8010就可看到(该图为试例数据)

第四章:Django绑定数据库并发布数据-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]_第2张图片

上一章-第三章:登录页面-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]

下一章-第五章:element、echarts及axios-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]

你可能感兴趣的:(数据服务,跨域,django,数据库)