Django实战(自定义模块+Echart Tree+sqlite3)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主要从以下这些方面依次介绍这次django实战经验:

  • 数据处理
  • django基本框架搭建
  • sqlite3数据库
  • Json数据
  • Echart树状图
  • Jquery 异步刷新
  • laydate 日期查询
  • 前后端交互

数据处理

从本地文件夹中获得所有源文件,使用pandas进行数据的读取与清洗,得到两个dataframe数据。将这两组Dataframe数据写入sqlite3数据库的两个表格中,并生成Echart tree map所需的json文件。使用spyder调试无误后,封装为自定义模块,为后续django调用做准备。

需要注意的一点是,如果打算通过django直接调用python自定义模块,需要将已经写好的自定义模块放入projectname/myapp/management/commands/文件目录下,已“from .modulefilename import modulename”方法导入本地

Django基本构架搭建

比较基础的django构架搭建方法在此不再重复。

1. models.py 定义数据模型

from django.db import models

# Create your models here.
class Cleanliness(models.Model):
    Index = models.IntegerField(primary_key=True)
    Standard = models.CharField(max_length=50)
    Nr = models.CharField(max_length=50)
    Time = models.DateTimeField()
    Result = models.CharField(max_length=20)

class Opllist(models.Model):
    Index = models.IntegerField(primary_key=True)
    Date = models.DateTimeField()
    Findings = models.CharField(max_length=50)
    Responsible = models.CharField(max_length=20)
    Station = models.CharField(max_length=20)
    Category = models.CharField(max_length=10)
    Risk = models.CharField(max_length=10)

数据库的写入与覆盖操作是使用如下模块执行的,网上对于这个方法有详细的介绍,其中也说过如果是数据库表格的覆盖操作,不建议使用这个方法的replace进行整体替代,而是推荐使用数据库本身的is_deleted方法进行,目前没有尝试过。但如果使用的是to_sql的replace方法,在models.py定义模型时,必须定义主键primary_key,否则在后期调试过程中,会出现数据无法写入数据库的错误。

    #连接到数据库
    #数据库文件是“test.db”
    #如果数据库不存在的话,将会自动创建一个 数据库
    db = sqlite3.connect(r"C:\Users\WAY1QIN\Desktop\Usecase\cleanliness VSD\VSD\VSDproject\cleanliness.db")
    pd.io.sql.to_sql(df,"myapp_cleanliness",con=db,index=True,if_exists="replace")
    print('df-success!')
    db.close()

2. urls

url.py文件定义如下
from django.urls import path
from . import views  #.意味着当前目录

urlpatterns = [
    path('',views.index),   #url(r'^$',views.index)
    path('frame/',views.frame),
    path('time/',views.time),
    path('refresh/',views.refresh),
    path('opl_chart/',views.opl_chart),
]

3. setting.py
setting.py文件配置,设置DATABASES建立与sqlite3数据库的连接, Static设置确保能够正确引用静态文件。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*',] 
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

ROOT_URLCONF = 'VSDproject.urls'

TEMPLATES = [
    {
   
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
   
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
DATABASES = {
   
    'default': {
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值