基于Python輕松制作一個(gè)股票K線圖網(wǎng)站_第1頁
基于Python輕松制作一個(gè)股票K線圖網(wǎng)站_第2頁
基于Python輕松制作一個(gè)股票K線圖網(wǎng)站_第3頁
基于Python輕松制作一個(gè)股票K線圖網(wǎng)站_第4頁
基于Python輕松制作一個(gè)股票K線圖網(wǎng)站_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第基于Python輕松制作一個(gè)股票K線圖網(wǎng)站div

button

type="button"

data-toggle="collapse"

data-target=".navbar-collapse"

span

Toggle

navigation/span

span

/span

span

/span

span

/span

/button

a

href="/"rel="externalnofollow"rel="externalnofollow"Stock-Data/a

/div

div

ul

lia

href="/"rel="externalnofollow"rel="externalnofollow"Home/a/li

/ul

/div

/div

/div

{%

endblock

%}

{%

block

content

%}

div

{%

block

page_content

%}

{%

endblock

%}

/div

{%

endblock

%}

創(chuàng)建一個(gè)導(dǎo)航欄,并定義相關(guān)的block內(nèi)容

接下來編寫404.html文件,展示非法url請(qǐng)求地址時(shí)的頁面

{%

extends

"base.html"

%}

{%

block

title

%}Page

Not

Found{%

endblock

%}

{%

block

page_content

%}

div

h1Not

Found/h1

/div

{%

endblock

%}

對(duì)于index.html文件,就是我們需要展示K線圖的頁面,我們后面再處理。

編輯主邏輯

首先編寫一個(gè)檢查股票正確性的函數(shù)

def

check_stock(code):

n

=

0

l

=

[]

stock_code

=

pd.read_csv("stock_code_name.csv",

dtype=object)

stock_code.drop('Unnamed:

0',

axis=1,

inplace=True)

stock_list

=

stock_code.values.tolist()

for

i

in

stock_list:

if

code

in

i:

n

+=

1

l

=

i

else:

continue

return

n,

l

如果股票正確,則返回n=1,否則返回n=0

接下來再編寫獲取股票數(shù)據(jù)的函數(shù)

def

get_stock_data(code,

ctime):

df

=

ts.get_hist_data(code)

mydate

=

df[:ctime].index.tolist()

mydata

=

df[:ctime][['open',

'close',

'low',

'high']].values.tolist()

return

[mydate,

mydata]

下面就是把PyEcharts集成到Flask應(yīng)用了,可以按照官方的教程走,把PyEcharts的樣式文件等拷貝到自己的templates目錄下,再編寫一個(gè)用于調(diào)用kline_base()函數(shù)的視圖函數(shù)

@app.route("/Kline",

methods=['GET',

'POST'])

def

get_kline_chart():

stock_name

=

request.form.get('stockName')

query_time

=

request.form.get('queryTime')

if

not

stock_name:

stock_name

=

'平安銀行'

if

not

query_time:

query_time

=

30

status,

stock_code

=

check_stock(stock_name)

if

status

==

0:

return

'error

stock

code

or

name'

mydate,

mydata

=

get_stock_data(stock_code[0],

int(query_time))

c

=

kline_base(mydate,

mydata,

stock_code[1])

return

c.dump_options()

首先通過request變量獲取到前端傳遞過來的數(shù)據(jù),分別為stockName和queryTime,如果這兩個(gè)參數(shù)是空值時(shí),則賦予它們一個(gè)默認(rèn)值。

接著判斷股票代碼的正確性并獲取股票歷史數(shù)據(jù)。

最后調(diào)用kline_base函數(shù)畫出K線圖,并渲染到前端頁面上。

前端頁面編寫

最后我們來完成前端頁面的工作

首先定義一個(gè)表單,用于傳遞股票名稱,查詢時(shí)間

form

id="form1"

onsubmit="return

false"

action="#"

method="post"

p

id="p1"股票名稱:

input

name="stockName"

type="text"

id="stockName"

tabindex="1"

size="16"

value=""

placeholder="股票名稱"/

/p

p

id="p2"查詢時(shí)間:

input

name="queryTime"

type="text"

id="queryTime"

tabindex="2"

size="16"

value=""

placeholder="輸入30查詢近30天數(shù)據(jù)"/

/p

pinput

type="submit"

value="查詢"

/p

/form

然后就是通過JQuery來動(dòng)態(tài)獲取數(shù)據(jù)

function

getData()

{

var

chart

=

echarts.init(document.getElementById('kline'),

'white',

{renderer:

'canvas'});

$.ajax({

type:

"POST",

dataType:

"json",

url:

"/Kline"

,

data:

$('#form1').serialize(),

success:

function

(result)

{

chart

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論