在前面的Python学习教程中,我们设置了系统的注册和登陆功能,已经基本满足了一个小型 Web 应用的需求。那么如果我们想通过这个网站来赚些小钱呢,就需要提供更高级的功能,当然这些高级功能不是免费开放的,设计一个权限系统,来控制高级应用的使用。
撰写高级功能
所谓的高级功能就是用户舍得花钱去购买的功能,像我这种喜欢薅羊毛的主,只配用用基础功能了。
我这里设计的高级功能,就是丰富 K 线图,在我们原来 K 线图的基础上添加移动平均线和成交量。
移动平均线
移动平均线是技术分析中非常普遍的一项指标,“平均”是指单位周期内的平均收盘价格,“移动”则是指将新的交易日收盘价纳入计算周期的同时,剔除最早的交易收盘价。
我们先来观察下通过 tushare 获取到的数据

可以看到,数据中的 Ma5、Ma10 和 Ma20 值可以用来制作移动平均线,可以通过折线图的方式来展现。
import pyecharts.options as opts
from pyecharts.charts import Line
def moving_average() -> Line:
c = (
Line()
.add_xaxis(df.index.tolist())
.add_yaxis("Ma5", df['ma5'].values.tolist(), is_smooth=True)
.add_yaxis("Ma10", df['ma10'].values.tolist(), is_smooth=True)
.add_yaxis("Ma20", df['ma20'].values.tolist(), is_smooth=True)
.set_global_opts(title_opts=opts.TitleOpts(title="移动平均线"))
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
)
)
return c
moving_average().render_notebook()

成交量
对于成交量,可以通过柱状图来展示,柱状图的高度,就是成交量的大小。把上涨时的成交量显示成红色,下跌时的成交量显示成绿色。
import pyecharts.options as opts
from pyecharts.charts import Line, Bar
volume_rise=[df.volume[x] if df.close[x] > df.open[x] else "0" for x in range(0, len(df.index))]
volume_drop=[df.volume[x] if df.close[x] <= df.open[x] else "0" for x in range(0, len(df.index))]
def volume() -> Bar:
c = (
Bar()
.add_xaxis(df.index.tolist())
.add_yaxis("volume_rise", volume_rise, stack=True, color=["#ec0000"])
.add_yaxis("volume_drop", volume_drop, stack=True, color=["#00da3c"])
.set_global_opts(title_opts=opts.TitleOpts(title="成交量"),
datazoom_opts=[opts.DataZoomOpts()],)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
)
)
return c
volume().render_notebook()

集成三个图表
下面我们就把三个图标,K 线图,移动平均线图和成交量图合成到一起
首先把 K 线图和移动平均线图层叠到一起
def kline_base() -> Kline:
kline = (
Kline()
.add_xaxis(df.index.tolist())
.add_yaxis("日K图", df[['open', 'close', 'low', 'high']].values.tolist(), markpoint_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_="max", value_dim="close")]
), markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_="max", value_dim="close")]
),
itemstyle_opts=opts.ItemStyleOpts(
color="#ec0000",
color0="#00da3c",
border_color="#8A0000",
border_color0="#008F28",
),
)
.

本文介绍了在Python Flask应用中实现权限控制的过程,包括权限设计、校验和整合前后端。通过设置权限表结构、角色初始化、权限校验函数,确保只有拥有Admin权限的用户才能访问高级功能。
最低0.47元/天 解锁文章
1051

被折叠的 条评论
为什么被折叠?



