【数据服务|第四章(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 Companyclass CompanySerializer(serializers.ModelSerializer):
class Meta:
model=Company#属性字段model将模型Product与ModelSerializer对象绑定
fields='__all__'#fields设置哪些字段转换为序列化换字段#4.依次在终端输入命令
python manage.py makemigrations
python manage.py migrate
输入命令后mysql中会生成相应表单
文章图片
接着需要将数据库数据发布成服务前端才能接收,需要在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 Responseclass 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就可看到(该图为试例数据)
文章图片
上一章-第三章:登录页面-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]
下一章-第五章:element、echarts及axios-[基于Vue、Django、supermap iserver和gerapy的生态旅游web系统开发实例]
推荐阅读
- 数据库|mysql窗口函数中的滑动窗口
- Mysql|mysql窗口函数-累计求和sum over
- 前端|8.Django怎样去调用漂亮的HTML前端页面()
- Python|Django学习笔记
- 工具教程|MySQL8.0.26安装超详细教程〔超详细〕
- mySql数据库|mysql安装教程8.0.26
- database|Mysql 8.0.26安装,听我的6分钟让你安装成功!
- 安装|mysql 8.0.28版本安装配置方法图文教程
- 数据库|Mysql-8.0.26-winx64下载和安装