Django连接MySQL对数据进行网页展示

Django–Tushare数据可视化

Django连接MySQL对数据进行网页展示

最近做了一个作业,,通过百度啊社区啊什么的学习,终于做出了完整的项目,大概是这样的:通过Django连接mysql,运用pycharm使用tushare,调取数据并进行数据展示!
项目内容:

  1. 通过行情图的方式展示给定个股的过去 6 个月的日线交易数据(开盘价、收
    盘价、最高价、最低价、成交量);
  2. 通过列表等方式展示上市公司基本信息;
  3. 通过列表方式展示上市公司前十大股东;
  4. 通过列表方式展示上市公司的前十大流通股股东

首先是Django的学习啦,创建项目及APP

参考网址:https://docs.djangoproject.com/en/2.2/intro/tutorial01/
项目就叫Shares吧,刚知道有股票的意思
django-admin startproject shares
就叫股票吧GP
python manage.py startapp GP
创建Shares
在这里插入图片描述

本地文件目录

后面会慢慢添加内容,本地文件目录结构:

在这里插入图片描述

先创建数据库吧,下面就要用到了,小草的是shares
在这里插入图片描述

进行拉取Tushare数据

首先是‘股票数据导入.py’调取数据

// 股票数据导入.py
from sqlalchemy import create_engine
import tushare as ts
import pandas as pd
cn = create_engine('mysql+pymysql://root(mysql名字,小草的名字是默认的):mysql密码@localhost:3306(还是默认的啦)/shares?charset=utf8')
pro = ts.pro_api('')    ####详细查看自己tushare的个人页面
company = pro.stock_company(exchange='SZSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province')
shareholder = pro.query('top10_holders', ts_code='600000.SH', start_date='20190101', end_date='20190501')
shareholder1 = pro.top10_floatholders(ts_code='600000.SH', start_date='20190101', end_date='20190601')
Ddata = pro.daily(ts_code='000001.SZ', start_date='20190101', end_date='20190601', fields='ts_code,trade_date,open,high,low,close,vol')
company.to_sql('company_basic',cn,index=False)
shareholder.to_sql('shareholder_basic',cn,index=False)
shareholder1.to_sql('shareholder1_basic',cn,index=False)
Ddata.to_sql('k_data',cn,index=False)

models.py

from django.db import models
class company_basic(models.Model):
    ts_code = models.CharField(max_length=100,null=True)
    chairman = models.CharField(max_length=100,null=True)
    manager = models.CharField(max_length=100,null=True)
    secretary = models.CharField(max_length=100,null=True)
    reg_capital = models.CharField(max_length=100,null=True)
    setup_date = models.CharField(max_length=100,null=True)
    province = models.CharField(max_length=100,null=True)
    def __str__(self):
        return self.ts_code

class shareholder_basic(models.Model):
    ts_code = models.CharField(max_length=100,null=True)
    ann_date = models.CharField(max_length=100,null=True)
    end_date = models.CharField(max_length=100,null=True)
    holder_name = models.CharField(max_length=100,null=True)
    hold_amount = models.CharField(max_length=100,null=True)
    hold_ratio = models.CharField(max_length=100,null=True)
    def __str__(self):
        return self.ts_code

class shareholder1_basic(models.Model):
    ts_code = models.CharField(max_length=100,null=True)
    ann_date = models.CharField(max_length=100,null=True)
    end_date = models.CharField(max_length=100,null=True)
    holder_name = models.CharField(max_length=100,null=True)
    hold_amount = models.CharField(max_length=100,null=True)
    def __str__(self):
        return self.ts_code
class K_data(models.Model):
    ts_code = models.CharField(max_length=100, null=True)
    trade_date=models.CharField(max_length=100,null=True)
    open = models.FloatField(max_length=100,null=True)
    high = models.FloatField(max_length=100,null=True)
    close = models.FloatField(max_length=100,null=True)
    low= models.FloatField(max_length=100,null=True)
    vol = models.FloatField(max_length=100,null=True)
    def __str__(self):
        return self.ts_code

通过cmd进行数据迁移

python manage.py migrate
python manage.py makemigrations GP
python manage.py sqlmigrate GP 0001

然后通过mysql导入数据到shares

1) use shares;
2)insert gp_company_basic(ts_code,chairman,manager,secretary,reg_capital,setup_date,province) select ts_code,chairman,manager,secretary,reg_capital,setup_date,province  from company_basic; 
3)insert gp_shareholder_basic(ts_code,ann_date,end_date,holder_name,hold_amount,hold_ratio) select ts_code,ann_date,end_date,holder_name,hold_amount,hold_ratio from shareholder_basic; 
4)insert gp_shareholder1_basic(ts_code,ann_date,end_date,holder_name,hold_amount) select ts_code,ann_date,end_date,holder_name,hold_amount from shareholder1_basic;
5)insert gp_K_data(ts_code,trade_date,open,high,close,low,vol) select ts_code,trade_date,open,high,close,low,vol from K_data;

开始写html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title >股票展示</title>
    <style type="text/css">
        body{
   background: #ddd;}
        h1{
   background: #71a879;text-align: center;}
        div{
   height:50px;color:#fff;font-size:24px;text-align:center}
        .box1{
   background: #71a879;text-align: center;}
        .box2{
   background: #6a8bbc;line-height: 50px;text-align: center;
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值