1.1.1数据项
项名 | 含义说明 | 类型 | 长度 | 取值范围 |
---|---|---|---|---|
公司名称 | 公交公司的名称 | 字符型 | 20 | |
公司创建时间 | 公交公司创建的时间 | 日期型 | ||
办公地点 | 公交公司的办公地点 | 字符型 | 20 | |
车牌号 | 公交车的车牌号 | 字符型 | 20 | |
座数 | 公交车的座位数 | 整型 | ||
汽车车龄 | 公交车的车龄 | 整型 | ||
线路编号 | 线路的编号 | 字符型 | 5 | |
线路创建时间 | 线路的创建时间 | 日期型 | ||
站点名 | 站点的名称 | 字符型 | 10 | |
站点位置 | 站点的所处的位置 | 字符型 | 20 | |
车队编号 | 车队的编号 | 整型 | ||
车队创建时间 | 车队的创建时间 | 日期型 | ||
工号 | 车队成员(包括队长和司机)的工号 | 字符型 | 11 | |
身份证号 | 车队成员的身份证 | 字符型 | 20 | 18位 |
姓名 | 车队成员的姓名 | 字符型 | 10 | |
性别 | 车队成员的性别 | 字符型 | 2 | “男”或“女” |
出生年份 | 车队成员的出生年份 | 整型 | ||
职称 | 车队成员的职称(用于区分普通司机,路队长和车队长) | 字符型 | 10 | (“普通司机”,“路队长”,“车队长”) |
联系方式 | 车队成员的联系方式 | 字符型 | 20 | 11位 |
家庭住址 | 车队成员的家庭住址 | 字符型 | 30 | |
入队时间 | 车队成员的入队时间 | 日期型 | ||
车龄 | 车队成员的车龄 | 整型 | ||
站点编号 | 站点在线路中的编号(表示站点处于线路中的第几个站) | 整型 | ||
违章编号 | 违章类型的编号 | 整型 | ||
违章类型 | 违章类型的具体说明 | 字符型 | 20 | |
处罚方式 | 对应违章类型的处罚方式 | 字符型 | 20 | |
违章时间 | 司机的违章时间 | 日期型 | ||
记录人工号 | 违章item的录入人工号 | 字符型 | 11 |
1.1.2数据结构
数据结构 | 含义 | 组成成分 |
---|---|---|
公交公司表 | 记录公交公司的信息 | (公司名称,公司创建时间,办公地点) |
汽车 | 记录公交车的信息 | (车牌号,车品牌,座数,车龄,公司名称,线路编号) |
车队 | 记录车队的信息 | (车队编号,车队创建时间,公司名称) |
线路 | 记录线路的信息 | (线路编号,线路创建时间,车队编号) |
站点 | 记录站点的信息 | (站点名,站点位置) |
车队成员 | 记录车队成员的信息 | (工号,身份证号,姓名,性别,年龄,职称,联系方式,家庭住址,入队时间,车龄,车队编号,线路编号) |
违章 | 记录违章类型的信息 | (违章编号,违章类型,处罚方式) |
线路-站点 | 记录线路和站点的对应信息 | (站点名,线路编号,站点在线路中的编号) |
车队成员-违章 | 用于录入司机违章的大致信息 | (违章人工号,违章时间,车牌号,违章站点名,违章编号,记录人工号) |
司机违章信息 | 记录司机违章的详细信息 | (违章司机工号,违章司机车队,车牌号,线路编号,违章站点,违章时间,违章类型说明,记录人工号) |
车队违章信息 | 记录车队的违章信息 | (车队编号,违章时间,违章类型说明) |
车队_车队成员 | 记录司机和车队的对应关系的信息 | (工号,车队编号) |
车队长 | 记录车队长和车队的对应关系信息 | (工号,车队编号) |
路队长 | 记录路队长和所负责线路的对应信息 | (工号,负责线路编号) |
ER图需要与数据库语义一致,可用ERwin。
图3 ER图-逻辑模型 图4 ER图-物理模型1 图5 ER图-物理模型2 图6 ER图-使用课本上的方法绘制的关系模型给出表名,列名,列类型,主码,外码,其他约束,进行范式分析。
注:其中加粗的是候选码,框起来的为外码。
1.公交公司表(公司名称,公司创建时间,办公地点
)
2.汽车(车牌号,车品牌,座数,车龄,公司名称,线路编号
)
3.车队(车队编号,车队创建时间,公司名称
)
4.线路(线路编号,线路创建时间,车队编号
)
5.站点(站点名,站点位置)
6.车队成员(工号,身份证号,姓名,性别,年龄,职称,联系方式,家庭住址,入队时间,车龄,车队编号,线路编号
)
假设不同成员的联系方式可以一致
7.违章(违章编号,违章类型,处罚方式)
8.线路-站点(站点名,线路编号,站点在线路中的编号)
9.车队成员-违章(违章人工号,违章时间,车牌号,违章站点名,违章编号,记录人工号
)
候选码:(违章人工号,违章时间),(违章时间,车牌号)
以上关系模式均满足4NF。
1.司机违章信息(违章司机工号,违章司机车队,车牌号,线路编号,违章站点,违章时间,违章类型说明,记录人工号)
2.车队违章信息(车队编号,违章时间,违章类型说明)
3.车队_车队成员(工号,车队编号)
4.车队长(工号,车队编号)
5.路队长(工号,负责线路编号)
Windows
Sql+python
Pycharm+mysql
①删除外码错误
-解决方法:参考
由于前期已经完成了后端的开发,在写前端代码时发现了设计的表有问题,出现了冗余的表,但是冗余的表里面有外码,在mysql中无法直接删除,需要先删除constraint 才能删除,具体可参见上述链接。
①如何将数据库中已经创建的表便捷的导入到python中以便前端的开发
-解决方法:参考
②如何将数据库中的视图导入python中
-解决方法:参考
使用上述链接中的代码将view换成自己的视图的名字(目前只找到了这个方法,只能自行输入视图的名字进行导入)
③录入foreign key时报错
-解决方法:参考
④前端查询foreign key时显示为object
-解决方法:参考
⑤css和html不同步,出现404和304错误
-解决方法:删除缓存,重新创建一个css文件并重新进行链接(由于没有找到更优的解决方案且遇到此问题的概率较低,故目前采用的是此方法,但本人认为可以有更优的解决方案)。
通过此次实验,从数据库的设计方面看,我初步掌握了ER图的使用,并且知道了可以通过ER图的正向工程和反向工程可以实现ER图和sql语句的转换;从前后端整体的角度看,明白了sql和python的链接;从前端的方面看,对django开发前端和操作数据库有了初步的认识,另外也在实践中明白了异常处理的重要性,在用户输入与后台的数据产生不一致时不是直接返回错误的界面而是提示用户出现了错误,并在开发中解决了很多的问题,感觉收获不小。
只列出主要代码,需要有注释。
/*1.创建基本表*/
/*1.2创建线路_站点表*/
DROP TABLE 线路_站点 CASCADE;
CREATE TABLE 线路_站点 (
zhandianming VARCHAR(10) NOT NULL,
zhandianbianhao SMALLINT NULL,
xianlubianhao VARCHAR(5) NOT NULL
);
ALTER TABLE 线路_站点
ADD PRIMARY KEY (zhandianming, xianlubianhao) ;
/*1.3创建车队成员_违章表*/
DROP TABLE 车队成员_违章 CASCADE;
CREATE TABLE 车队成员_违章 (
weizhangshijian DATE NOT NULL,
weizhangsijigonghao CHAR(11) NOT NULL,
chepaihao VARCHAR(20) NULL,
xianlubianhao VARCHAR(5) NULL,
zhandianming VARCHAR(10) NULL,
weizhangbianhao SMALLINT NULL,
jilurengonghao CHAR(11) NULL
);
ALTER TABLE 车队成员_违章
ADD PRIMARY KEY (weizhangshijian, weizhangsijigonghao) ;
/*1.4创建车队成员表*/
DROP TABLE 车队成员 CASCADE;
CREATE TABLE 车队成员 (
gonghao CHAR(11) NOT NULL,
shenfenzhenghao VARCHAR(20) NOT NULL UNIQUE,
xingming VARCHAR(10) NULL,
xingbie CHAR(2) NULL,
chushengnianfen SMALLINT NULL,
zhicheng VARCHAR(10) NULL,
lianxifangshi VARCHAR(20) NULL,
jiatinzhuzhi VARCHAR(30) NULL,
ruduishijian DATE NULL,
cheling SMALLINT NULL,
xianlubianhao VARCHAR(5) NULL
cheduibianhao SMALLINT NULL
);
ALTER TABLE 车队成员
ADD PRIMARY KEY (gonghao) ;
/*1.5创建汽车表*/
DROP TABLE 汽车 CASCADE;
CREATE TABLE 汽车 (
chepaihao VARCHAR(20) NOT NULL,
chepinpai VARCHAR(10) NOT NULL,
zuoshu SMALLINT NULL,
cheling SMALLINT NULL,
gongsimingcheng VARCHAR(20) NULL,
xianlubianhao VARCHAR(5) NULL
);
ALTER TABLE 汽车
ADD PRIMARY KEY (chepaihao) ;
/*1.6创建线路表*/
DROP TABLE 线路 CASCADE;
CREATE TABLE 线路 (
xianlubianhao VARCHAR(5) NOT NULL,
xianluchuangjianshijian DATE NULL,
cheduibianhao SMALLINT NULL
);
ALTER TABLE 线路
ADD PRIMARY KEY (xianlubianhao) ;
/*1.7创建车队表*/
DROP TABLE 车队 CASCADE;
CREATE TABLE 车队 (
cheduibianhao SMALLINT NOT NULL,
cheduichuangjianshijian DATE NOT NULL,
gongsimingcheng VARCHAR(20) NULL
);
ALTER TABLE 车队
ADD PRIMARY KEY (cheduibianhao) ;
/*1.8创建公交公司表*/
DROP TABLE 公交公司 CASCADE;
CREATE TABLE 公交公司 (
gongsimingcheng VARCHAR(20) NOT NULL,
gongsichuangjianshijian DATE NULL,
bangongdidian VARCHAR(20) NULL
);
ALTER TABLE 公交公司
ADD PRIMARY KEY (gongsimingcheng) ;
/*1.9创建站点表*/
DROP TABLE 站点 CASCADE;
CREATE TABLE 站点 (
zhandianming VARCHAR(10) NOT NULL,
zhandianweizhi VARCHAR(20) NULL
);
ALTER TABLE 站点
ADD PRIMARY KEY (zhandianming) ;
/*1.10创建违章表*/
DROP TABLE 违章 CASCADE;
CREATE TABLE 违章 (
weizhangbianhao SMALLINT NOT NULL,
weizhangleixing VARCHAR(20) NULL,
chufafangshi VARCHAR(20) NOT NULL
);
ALTER TABLE 违章
ADD PRIMARY KEY (weizhangbianhao) ;
/*2创建视图部分*/
/*2.1创建路队长视图*/
CREATE OR REPLACE VIEW 路队长 (工号, 负责路线) AS
SELECT 车队成员.gonghao, 车队成员.xianlubianhao
FROM 车队成员
WHERE 车队成员.zhicheng='路队长';
/*2.2创建车队队长视图*/
CREATE OR REPLACE VIEW 车队队长 (工号, 负责车队编号) AS
SELECT 车队成员.gonghao, 车队成员.cheduibianhao
FROM 车队成员, 车队成员
WHERE 车队成员.zhicheng='车队长' AND 车队成员.gonghao=车队成员.gonghao;
/*2.3创建车队_车队成员视图*/
CREATE OR REPLACE VIEW 车队_车队成员 (工号, 车队编号) AS
select `cheduichengyuan`.`gonghao` AS `gonghao`,`cheduichengyuan`.`xianlubianhao` AS `xianlubianhao` from `cheduichengyuan`
/*2.4创建司机违章信息视图*/
CREATE OR REPLACE VIEW 司机违章信息 (违章司机工号, 违章司机车队, 车牌号, 线路编号, 违章站点, 违章时间, 违章类型说明, 记录人工号) AS
SELECT 车队成员_违章.weizhangsijigonghao, 车队成员.cheduibianhao, 车队成员_违章.chepaihao, 车队成员_违章.xianlubianhao, 车队成员_违章.zhandianming, 车队成员_违章.weizhangshijian, 违章.weizhangleixing, 车队成员_违章.jilurengonghao
FROM 车队成员_违章, 车队成员, 违章
WHERE 车队成员.gonghao=车队成员_违章.weizhangsijigonghao
AND 车队成员_违章.weizhangbianhao=违章.weizhangbianhao;
/*2.5创建车队违章信息视图*/
CREATE OR REPLACE VIEW 车队违章信息 (车队编号, 违章时间, 违章类型说明) AS
SELECT 车队成员.cheduibianhao, 车队成员_违章.weizhangshijian, 违章.weizhangleixing
FROM 车队成员, 车队成员_违章, 违章
WHERE 车队成员.gonghao=车队成员_违章.weizhangsijigonghao
AND 违章.weizhangbianhao=车队成员_违章.weizhangbianhao;
/*3设置外码*/
ALTER TABLE 线路_站点
ADD FOREIGN KEY (xianlubianhao)
REFERENCES 线路(xianlubianhao);
ALTER TABLE 线路_站点
ADD FOREIGN KEY (zhandianming)
REFERENCES 站点(zhandianming);
ALTER TABLE 车队成员_违章
ADD FOREIGN KEY (weizhangbianhao)
REFERENCES 违章(weizhangbianhao)
ON DELETE SET NULL ;
ALTER TABLE 车队成员_违章
ADD FOREIGN KEY (zhandianming)
REFERENCES 站点(zhandianming)
ON DELETE SET NULL ;
ALTER TABLE 车队成员_违章
ADD FOREIGN KEY (xianlubianhao)
REFERENCES 线路(xianlubianhao)
ON DELETE SET NULL ;
ALTER TABLE 车队成员_违章
ADD FOREIGN KEY (chepaihao)
REFERENCES 汽车(chepaihao)
ON DELETE SET NULL ;
ALTER TABLE 车队成员_违章
ADD FOREIGN KEY (weizhangsijigonghao)
REFERENCES 车队成员(gonghao) ;
ALTER TABLE 车队成员
ADD FOREIGN KEY (xianlubianhao)
REFERENCES 线路(xianlubianhao)
ON DELETE SET NULL ;
ALTER TABLE 汽车
ADD FOREIGN KEY (xianlubianhao)
REFERENCES 线路(xianlubianhao)
ON DELETE SET NULL ;
ALTER TABLE 汽车
ADD FOREIGN KEY (gongsimingcheng)
REFERENCES 公交公司(gongsimingcheng)
ON DELETE SET NULL ;
ALTER TABLE 线路
ADD FOREIGN KEY (cheduibianhao)
REFERENCES 车队(cheduibianhao)
ON DELETE SET NULL ;
ALTER TABLE 车队
ADD FOREIGN KEY (gongsimingcheng)
REFERENCES 公交公司(gongsimingcheng)
ON DELETE SET NULL ;
INSERT INTO 公交公司 VALUE ('zhou',null,'online')
SELECT * FROM 公交公司
view.py
# 在这里面的函数与DBase里面的url对应
import sys
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
import time
# Create your views here.
# 函数默认需要有一个参数
# 录入司机基本信息,如工号、姓名、性别等
def siji(request):
if request.method == 'GET':
return render(request,'lurusiji.html')
print(request.POST)
try:
# 从前端获取数据
gonghao = request.POST.get("gonghao")
shenfenzhenghao = request.POST.get("shenfenzhenghao")
print(len(shenfenzhenghao))
if len(shenfenzhenghao)!=18 and len(shenfenzhenghao)!=0:
return render(request, 'lurusiji.html',{"errsfzh":"身份证号输入错误"})
xingming = request.POST.get("xingming")
xingbie = request.POST.get("xingbie")
chushengnianfen = request.POST.get("chushengnianfen")
zhicheng = request.POST.get("zhicheng")
lianxifangshi = request.POST.get("lianxifangshi")
if len(lianxifangshi) != 11 and len(lianxifangshi) != 0:
return render(request, 'lurusiji.html', {"errlxfs": "联系方式填写错误"})
jiatinzhuzhi = request.POST.get("jiatinzhuzhi")
ruduishijian = request.POST.get("ruduishijian")
cheling = request.POST.get("cheling")
xianlubianhao = request.POST.get("xianlubianhao")
cheduibianhao = request.POST.get("cheduibianhao")
print(xingbie,zhicheng)
# 特殊处理外码
xianlubianhaof=models.Xianlu.objects.get(xianlubianhao=xianlubianhao)
# 将信息放入数据库
models.Cheduichengyuan.objects.create(gonghao=gonghao,shenfenzhenghao=shenfenzhenghao,xingming=xingming,xingbie=xingbie,chushengnianfen=chushengnianfen,zhicheng= zhicheng,lianxifangshi=lianxifangshi,jiatinzhuzhi=jiatinzhuzhi,ruduishijian=ruduishijian,cheling=cheling,xianlubianhao=xianlubianhaof,cheduibianhao=cheduibianhao)
except Exception as e:
print(e)
print("error")
return render(request,'lurusiji.html',{"errormsg":"录入失败!请检查:工号和身份证号是否录入,以及是否唯一,车队编号是否存在,若以上均正确仍无法录入请联系管理员",})
else:
return render(request, 'lurusiji.html')
# 录入汽车基本信息,如车牌号、座数等
def qiche(request):
if request.method == 'GET':
return render(request,'luruqiche.html')
print(request.POST)
try:
# 从前端获取数据
chepaihao = request.POST.get("chepaihao")
chepinpai = request.POST.get("chepinpai")
zuoshu = request.POST.get("zuoshu")
cheling = request.POST.get("cheling")
gongsimingcheng = request.POST.get("gongsimingcheng")
xianlubianhao = request.POST.get("xianlubianhao")
# 外码
gongsimingchengf = models.Gongjiaogongsi.objects.get(gongsimingcheng=gongsimingcheng)
xianlubianhaof=models.Xianlu.objects.get(xianlubianhao=xianlubianhao)
# 加入到数据库中
models.Qiche.objects.create(chepaihao=chepaihao,chepinpai=chepinpai,zuoshu=zuoshu,cheling=cheling,gongsimingcheng=gongsimingchengf,xianlubianhao=xianlubianhaof)
except Exception as e:
print(e)
return render(request, 'luruqiche.html',{"err","录入错误!请检查检查公司和线路是否存在以及填写是否正确"})
else:
return render(request, 'luruqiche.html')
return HttpResponse('录入汽车基本信息,如车牌号、座数等')
# 录入司机的违章信息;
def lsijiweizhang(request):
if request.method == 'GET':
return render(request,'luruweizhang.html')
print(request.POST)
try:
# 从前端获取数据
weizhangshijian = request.POST.get("weizhangshijian")
weizhangsijigonghao = request.POST.get("weizhangsijigonghao")
chepaihao = request.POST.get("chepaihao")
zhandianming = request.POST.get("zhandianming")
weizhangbianhao = request.POST.get("weizhangbianhao")
jilurengonghao = request.POST.get("jilurengonghao")
# 外码
weizhangsijigonghaof=models.Cheduichengyuan.objects.get(gonghao=weizhangsijigonghao)
chepaihaof = models.Qiche.objects.get(chepaihao=chepaihao)
zhandianmingf = models.Zhandian.objects.get(zhandianming=zhandianming)
weizhangbianhaof = models.Weizhang.objects.get(weizhangbianhao=weizhangbianhao)
# 将信息放到数据库中
models.CheduichengyuanWeizhang.objects.create(weizhangshijian=weizhangshijian,weizhangsijigonghao=weizhangsijigonghaof,chepaihao=chepaihaof,zhandianming=zhandianmingf,weizhangbianhao=weizhangbianhaof,jilurengonghao= jilurengonghao)
except Exception as e:
print(e)
return render(request, 'luruweizhang.html',{"err":"请检查信息填写是否正确"})
else:
return render(request, 'luruweizhang.html')
return HttpResponse('录入司机的违章信息')
# 查询某个车队下的司机基本信息;
def chedui(request):
if request.method == 'GET':
return render(request,'chaxunchedui.html')
print(request.POST)
try:
# 从前端获取数据并筛选数据库中的数据
cheduibianhao = request.POST.get("cheduibianhao")
sijiset=models.Cheduichengyuan.objects.filter(cheduibianhao=cheduibianhao)
# 将出生年份转换成年龄
for siji in sijiset:
if siji.chushengnianfen != None:
siji.chushengnianfen=time.localtime(time.time())[0]-siji.chushengnianfen
except Exception as e:
print(e)
return render(request,'chaxunchedui.html',{"err":"请检查信息填写是否正确"})
else:
return render(request,'chaxunchedui.html',{"sijisets":sijiset})
return HttpResponse('查询某个车队下的司机基本信息')
# 查询某名司机在某个时间段的违章详细信息;
def ssijiweizhang(request):
if request.method == 'GET':
return render(request,'chaxunsijiweizhang.html')
print(request.POST)
try:
# 获取前端输入数据并将获得的string转换成date
gonghao = request.POST.get("gonghao")
kaishishijian = request.POST.get("kaishishijian")
jieshushijian = request.POST.get("jieshushijian")
import datetime
kaishishijian=(datetime.date(*map(int, kaishishijian.split('-'))))
jieshushijian=(datetime.date(*map(int, jieshushijian.split('-'))))
# 从数据库中筛选数据
weizhangsets = models.Sijiweizhangxinxi.objects.filter(weizhangshijian__range=[kaishishijian, jieshushijian],weizhangsijigonghao=gonghao)
except Exception as e:
print(e)
return render(request,'chaxunsijiweizhang.html',{"err":"请检查输入是否正确"})
else:
return render(request,'chaxunsijiweizhang.html',{"weizhangsets":weizhangsets})
return HttpResponse('查询某名司机在某个时间段的违章详细信息')
# 查询某个车队在某个时间段的违章统计信息,
# 如:2次闯红灯、4次未礼让斑马线等。(次数使用count得出)
def cheduiweizhang(request):
if request.method == 'GET':
return render(request,'chaxunweizhang.html')
print(request.POST)
try:
# 从前端获取数据,并将string转换成date
chedui = request.POST.get("chedui")
kaishishijian = request.POST.get("kaishishijian")
jieshushijian = request.POST.get("jieshushijian")
import datetime
kaishishijian=(datetime.date(*map(int, kaishishijian.split('-'))))
jieshushijian=(datetime.date(*map(int, jieshushijian.split('-'))))
# 从数据库中筛选数据,并将数据转换成dic(统计数据),key为违章类型,value为对应违章类型的次数
weizhangsets = models.Cheduiweizhangxinxi.objects.filter(cheduibianhao=chedui,weizhangshijian__range=[kaishishijian, jieshushijian])
weizhangdic={}
for weizhang in weizhangsets:
if weizhang.weizhangleixing in weizhangdic:
weizhangdic[weizhang.weizhangleixing]=weizhangdic[weizhang.weizhangleixing]+1
else:
weizhangdic[weizhang.weizhangleixing] =1
except Exception as e:
print(e)
return render(request, 'chaxunweizhang.html',{"err":"请检查输入是否正确"})
else:
return render(request,'chaxunweizhang.html',{"chedui": chedui,"kaishishijian":kaishishijian,"jieshushijian":jieshushijian,"weizhangdic":weizhangdic})
return HttpResponse('查询某个车队在某个时间段的违章统计信息')
username='username'
# 登录页面
def login(request):
if request.method == 'GET':
return render(request,'login.html')
# 如果是post请求则获取用户提交的数据
print(request.POST)
# 获取前端数据
username=request.POST.get("user")
password=request.POST.get("pwd")
# 验证是不是车队长或者路队长 cheduizhangset=models.Cheduiduizhang.objects.filter(gonghao=username)
luduizhangset=models.Luduizhang.objects.filter(gonghao=username)
if (len(cheduizhangset)!=0 or len(luduizhangset)!=0) and password == '1234':
return render(request,'duizhang.html')
# 验证是不是车队成员,并将出生年份转换成年龄 chengyuanset=models.Cheduichengyuan.objects.filter(gonghao=username)
if len(chengyuanset)!=0:
chengyuan={}
for item in chengyuanset:
chengyuan=item
if chengyuan.chushengnianfen != None:
chengyuan.chushengnianfen=time.localtime(time.time())[0]-chengyuan.chushengnianfen
print(chengyuan.xianlubianhao)
weizhang=models.Sijiweizhangxinxi.objects.filter(weizhangsijigonghao=username)
weizhanglen=len(weizhang)
return render(request,'chengyuan.html',{"chengyuan":chengyuan,"weizhangsets":weizhang,"weizhanglen":weizhanglen})
return render(request,'login.html',{"error_msg":"工号输入错误"})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。