项目实训10

第四周第一次

整理数据,完成了将算法组得到的预测产量数据合并整理,存入数据库中。

import pandas as pd
import os

Folder_Path = r'D:\PyCharm\predict_crop'  # 要拼接的文件夹及其完整路径,注意不要包含中文
SaveFile_Path = r'D:\PyCharm\data_a'  # 拼接后要保存的文件路径
SaveFile_Name = r'predict_crop.csv'  # 合并后要保存的文件名

# 修改当前工作目录
os.chdir(Folder_Path)
# 将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()

# 读取第一个CSV文件并包含表头
df = pd.read_csv(Folder_Path + '\\' + file_list[0], encoding="utf_8_sig")  # 编码默认UTF-8,若乱码自行更改

# 将读取的第一个CSV文件写入合并后的文件保存
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False)

# 循环遍历列表中各个CSV文件名,并追加到合并后的文件
for i in range(1, len(file_list)):
    df = pd.read_csv(Folder_Path + '\\' + file_list[i])
    df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False, header=False, mode='a+')

 将算法组得到的预测价格数据合并整理,存入数据库中。

import pandas as pd
import os

Folder_Path = r'D:\PyCharm\pre'  # 要拼接的文件夹及其完整路径,注意不要包含中文
SaveFile_Path = r'D:\PyCharm\data_a'  # 拼接后要保存的文件路径
SaveFile_Name = r'predict.csv'  # 合并后要保存的文件名

# 修改当前工作目录
os.chdir(Folder_Path)
# 将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()

# 读取第一个CSV文件并包含表头
df = pd.read_csv(Folder_Path + '\\' + file_list[0], encoding="utf_8_sig")  # 编码默认UTF-8,若乱码自行更改

# 将读取的第一个CSV文件写入合并后的文件保存
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False)

# 循环遍历列表中各个CSV文件名,并追加到合并后的文件
for i in range(1, len(file_list)):
    df = pd.read_csv(Folder_Path + '\\' + file_list[i])
    df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False, header=False, mode='a+')

确定了数据表的设计,使用Django新建数据表,建立联系,保证后端所有人可以使用 。

第一次迭代的表沿用之前的设计,只在market上新增了city的设置。

from django.db import models

# Create your models here.

#城市农作物产量表
class Citycrop(models.Model):

    """各城市农作物信息:Citycrop(id,city,year,crop_type,area,weight_all,weight_avg)"""
    objects = models.Manager()
    city =models.CharField(max_length=255,default='',verbose_name="城市名称",null=True,blank=True)
    year =models.IntegerField(default=0,verbose_name="年份",null=True,blank=True)
    crop_type =models.CharField(max_length=255,default='',verbose_name="作物种类",null=True,blank=True)
    area =models.FloatField(default=0,verbose_name="种植面积",null=True,blank=True)
    weight_all =models.FloatField(default=0,verbose_name="总产量",null=True,blank=True)
    weight_avg =models.FloatField(default=0,verbose_name="单产",null=True,blank=True)
    class Meta:
        db_table ='citycrop'
        verbose_name = "城市农作物信息"


from django.db import models

# Create your models here.
#所有市场信息
class Market(models.Model):
    """各市场信息:Market(id,market,actul_type,dim_type,price,pyear,month)"""
    objects =models.Manager()
    market =models.CharField(max_length=255,default='',verbose_name="市场名称", null=True, blank=True)
    actual_type =models.CharField(max_length=255,default='',verbose_name="准确类型", null=True, blank=True)
    dim_type=models.CharField(max_length=255,default='',verbose_name="模糊类型", null=True, blank=True)
    price =models.FloatField(default=0,verbose_name="价格", null=True, blank=True)
    year = models.IntegerField( default=0, verbose_name="年份", null=True, blank=True)
    month = models.IntegerField( default=0, verbose_name="月份", null=True, blank=True)
    day = models.IntegerField(default=0, verbose_name="天", null=True, blank=True)
    city = models.CharField(max_length=255, default='', verbose_name="城市", null=True, blank=True)
    class Meta:
        db_table ='market'
        verbose_name = "市场信息"
from django.db import models

# Create your models here.
#城市天气信息
class Cityclimate(models.Model):
    """各城市天气信息:Cityclimate(id,city,year,month,temperature,rain)"""
    objects =models.Manager()
    city = models.CharField(max_length=255, default='', verbose_name="城市名称", null=True, blank=True)
    year = models.IntegerField( default=0, verbose_name="年份", null=True, blank=True)
    month =models.IntegerField( default=0, verbose_name="月份", null=True, blank=True)
    temperature =models.FloatField(default=0,verbose_name="气温",null=True,blank=True)
    rain =models.FloatField(default=0,verbose_name="降水量",null=True,blank=True)
    class Meta:
        db_table ='cityclimate'
        verbose_name = "城市天气信息"
from django.db import models


# Create your models here.
class User(models.Model):
    """
    用户信息数据表
    User(id,useraccount,password,username,phone,email,create_time,verify_time)
    """
    objects = models.Manager()
    useraccount =models.CharField(verbose_name='用户账号',unique=True,max_length=200,help_text="用户账号")
    password =models.CharField(verbose_name="用户密码",max_length=200,help_text="用户密码")
    username =models.CharField(verbose_name="用户名",default='',max_length=200,help_text="用户名")
    phone =models.CharField(verbose_name="手机号",default='           ',max_length=11,help_text="手机号")
    email =models.CharField(verbose_name="邮箱",default='',max_length=200,help_text="邮箱")
    class   Meta:
        db_table ="User"
        verbose_name ="用户信息"

第二次迭代新增的模型根据新设计的表进行编写

from django.db import models

# Create your models here.


class Predictcrop(models.Model):


    objects = models.Manager()
    crop = models.CharField(max_length=255, default='', verbose_name="作物种类", null=True, blank=True)
    city =models.CharField(max_length=255,default='',verbose_name="城市名称",null=True,blank=True)
    unit = models.CharField(max_length=255, default='', verbose_name="单位", null=True, blank=True)
    weight =models.FloatField(default=0,verbose_name="单产",null=True,blank=True)
    first =models.FloatField(default=0,verbose_name="第一天",null=True,blank=True)
    class Meta:
        db_table ='predictcrop'
        verbose_name = "城市农作物预测信息"
from django.db import models

# Create your models here.
#新闻信息
class News(models.Model):
    
    objects =models.Manager()
    title = models.CharField(max_length=255, default='', verbose_name="标题", null=True, blank=True)
    date = models.DateField( default=0, verbose_name="日期", null=True, blank=True)
    source = models.CharField(max_length=255, default='', verbose_name="来源", null=True, blank=True)
    viewed =models.IntegerField( default=0, verbose_name="阅读次数", null=True, blank=True)
    content = models.TextField(default='', verbose_name="内容", null=True, blank=True)
    class Meta:
        db_table ='news'
        verbose_name = "新闻信息"
from django.db import models

# Create your models here.
#图片信息
class Image(models.Model):
    objects =models.Manager()
    name = models.CharField(max_length=255, default='', verbose_name="名字", null=True, blank=True)
    src = models.CharField( max_length=255, default='', verbose_name="连接", null=True, blank=True)
    class Meta:
        db_table ='image'
        verbose_name = "图片"
rom django.db import models

# Create your models here.
#预测价格信息
class Predict(models.Model):
    objects =models.Manager()
    actual_type = models.CharField(max_length=255, default='', verbose_name="准确类型", null=True, blank=True)
    dim_type = models.CharField(max_length=255, default='', verbose_name="模糊类型", null=True, blank=True)
    unit = models.CharField(max_length=255, default='', verbose_name="单位", null=True, blank=True)
    market = models.CharField(max_length=255, default='', verbose_name="市场名称", null=True, blank=True)
    today = models.FloatField(default=0, verbose_name="当天价格", null=True, blank=True)
    one = models.FloatField(default=0, verbose_name="第一天预测", null=True, blank=True)
    two = models.FloatField(default=0, verbose_name="第二天预测", null=True, blank=True)
    three = models.FloatField(default=0, verbose_name="第三天预测", null=True, blank=True)
    four = models.FloatField(default=0, verbose_name="第四天预测", null=True, blank=True)
    five = models.FloatField(default=0, verbose_name="第五天预测", null=True, blank=True)


    class Meta:
        db_table ='predict'
        verbose_name = "预测价格信息"

之后在setting里添加这些app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'market',
    'citycrop',
    'cityclimate',
    'user',
    'image',
    'predict',
    'predictcrop',
    'news'
]

然后运行指令新建数据库

 最后数据库如图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值