作者 | 陈肖
数据支持 | 勾股大数据(www.gogudata.com)

1

除被爆“坐庄赖账”的中源家居外,被股民称之“叶飞概念股”的上市公司还包括:起步股份、ST众泰、通裕重工、凯盛科技、维诺信、东方时尚、今创集团、昊志机电、华钰矿业、利通电子、隆基机械、法兰泰克等,几乎无一幸免暴跌的局面。



2
3


4
转自:https://mp.weixin.qq.com/s/VUBsq4HwbvxxFmel0PdbUg
分享个人经验,保留阅读记录,做时间的朋友
作者 | 陈肖
数据支持 | 勾股大数据(www.gogudata.com)

1

除被爆“坐庄赖账”的中源家居外,被股民称之“叶飞概念股”的上市公司还包括:起步股份、ST众泰、通裕重工、凯盛科技、维诺信、东方时尚、今创集团、昊志机电、华钰矿业、利通电子、隆基机械、法兰泰克等,几乎无一幸免暴跌的局面。



2
3


4
转自:https://mp.weixin.qq.com/s/VUBsq4HwbvxxFmel0PdbUg
◎作者 | 铁马
◎来源 | 金融八卦女频道(baguanvpindao)已获授权
近日,号称中介费只收几万的叶飞,又爆料说中源家居本来准备掏100万让他闭嘴。
可是啊,证监会都说了要一查到底,这场“黑吃黑”的自爆,怎么可能草草收场?
这几年以来,摔杯子之后,很容易有人睡不着。
这事儿,富力老板张力懂,行为艺术大师李国庆懂,中源家居、维信诺、昊志机电、东方时尚、隆基机械等18家上市公司的老板,现在也应该体验到了。
咋回事呢?
话说,江湖上有这么一位“大侠”,之前叫嚣着超过徐翔,连续在电视上当评论员,后来当过私募冠军。
然后,就也被杀猪盘了,还带着券商一起被杀,成了接盘侠。
这就是我们今天的主角——叶飞,一个要成为海贼王,哦不“杀猪王”的男人。

金融圈的黑吃黑
咱们先复盘一下叶飞爆料的事情经过,假设叶飞在微博的爆料坐实(注意是假设),应该是何种操作过程?

中源家居的庄家(叶飞晒出身份证的女士,咱就叫她小蒲妹子吧),通过申万宏源某营业部人士刘鹏联系叶飞,邀请叶飞这个中间人,找到公募基金和券商资金,希望有资金能帮忙买股票代持,把仓位锁住,并承诺保底,后续会拉升30%以上。
盘方大笔套现,代持方拿走代持费,叶飞、刘鹏等中间商拿中介费。
但后来吧,中源家居连续三个跌停,公募、券商资金包括叶飞在内,都发现自己被骗了。
实际是中源家居的庄家(盘方)要出货,然后直接出给了公募和券商让其接盘。
嗯,这就是传说中的“假代持真出货”。
大家都是第一次合作,也都是看在钱的份上,这下券商和公募一毛钱没赚到还倒贴30%。
公募和券商就找中间人叶飞是问,让叶飞赔钱。
叶飞也发现盘方连后续的保证金和中介费都不付了,就把这事捅出来了,要不然咱们一起鱼死网破嘛,毕竟我身上背的监管函和禁令也不止你这一条。
有人说:“诶,我感觉这和荐股群里的杀猪盘挺像。”
自信点,咱把“感觉”两个字去掉,朋友们,现在韭菜都不够用了,直接割机构啊!
如果“市值管理”坐实,可就是违法行为、操纵股价了,所以上市公司中源家居已经连夜撇清关系,否认三连。
韭菜到底谁,也有迹可循。
我们来观察一下,叶飞在华夏时报的采访里称,“市值管理”的买入时间是2021年3月31日。
当天因为盘中引发跌停,最终公募基金没有买,所以“入局”的是券商资管,买入1500余万元。

民生证券是新的十大股东之一,买入55万股结合当时中源家居26元左右的股价……虽然上市公司连连否认(主要是不否认也不行啊),但是感觉“锤”越来越多,难不成“冤大头”找到了?
于是就有了第二天四季酒店里的摔杯事件。
刘鹏对《华夏时报》记者抱怨说,这都怪叶飞:
没有控制好情绪,摔了杯子,实在不应该,“应该好好谈”,因为整个链条里又没有书面合同,都是口头协议。

▲图片来源:华夏时报

叶飞的再一次黑色幽默
如果叶飞的爆料坐实,那么几方都不是什么好人,咱先说叶飞“叶老师”吧,他的坑人经过,互联网还是有记忆的。
叶飞和徐翔草根出身不一样,他是正统南京大学数字多媒体专业毕业,这在老股民里绝对是专业出身。
据说1998年19岁的叶飞带着2万元踏入了中国A股资本市场(一说1994年叶飞入市,但当时叶飞只有15岁,已不可考证)。
然后伴随着黄燕铭的“五朵金花“理论赚得人生的第一桶金。
之后由于他去做了私募叫做倚天投资,在2015年前后收益确实不错,被评为了“阳光私募基金股票策略组2015年上半年度冠军”。
例如他的阳光私募基金倚天雅莉3号仅成立9个月的产品涨幅高达315.73%。

▲2015年叶飞的路演宣传图
后来倚天雅莉三号更是跑赢了徐翔旗下产品147个百分点,所以“叶老师”开始说自己比徐翔厉害,肯定能超过徐翔,加之叶老师平时聊天的话术还颇有些“大霄之风”,所以叶飞不仅在CCTV里当过股评人,还开始了“传道授业解惑”。
同样是2015年,浙江某大学邀请叶飞到EMBA总裁班给大家讲课。
钱江晚报的报道是这样的:
“叶飞上课内容很简单,除了普通股票知识,就是讲实际操作。
EMBA学员的陈先生说,今年(2015年)5月14日、15日两天,叶飞示范了辉煌科技的股票操作,让上课的学员跟着买。
开始的时候辉煌科技还是跌的,结果很快被拉到接近涨停。
第二天,辉煌科技先跌后涨,等涨几个点的时候他叫大家赶紧卖。
5月15日当天,叶飞又操作了先河环保,股价同样很快被拉到涨停板。”
好家伙,这不就是现在微信群杀猪盘的线下版吗?
由于这几次手把手操作的涨停,读EMBA的老板们对叶老师服得五体投地,然后每人交了29.8万元“培训费”,后来根据学员们的统计,共有20多个人上了叶老师的车,总资金量达到2.5亿-3亿元。
然后我们再回过头看看,这段时间是什么时候?2015年5-6月,结果很明显了,叶老师的老板学员们全部被割了韭菜……

当然了,叶飞自己也不能逃过执法的眼睛,由于他在2015年5月13日至6月30日,集中资金优势在尾盘阶段连续买入信威集团、晋西车轴、江淮汽车、奥特迅和中青宝等5只股票操控股价被证监会罚没违法所得。
之后,叶飞又在2016年因为旗下的私募过于夸大其词被约谈,后来由于市场下跌,叶飞的私募绝大多数产品开始清盘,仅剩的两支“倚天雅莉3号”、“倚天雅莉4号”也过上了跌妈不认的日子。
2016年至2017年,倚天投资两次出现在证监会通报的被采取行政监管措施的机构和个人名单之列;
2018年,倚天投资因不能持续符合私募基金管理人登记要求,被证监会注销私募基金管理人资格。

目前,倚天投资的执行案件共有9起,立案时间跨度2017年-2021年,未履行金额近3000万,叶飞本人也有9起案件被限制高消费。
所以在此次爆料之前,叶飞也销声匿迹了很久,他为什么悄悄做市值管理的逻辑也就顺了,因为自己的私募太坑人已经被罚的赚不到钱了,甚至开始搞直播,求打赏…

但是正所谓天道好轮回,苍天饶过谁啊,这次“叶老师”也不行了。
有资深投资者表示:
“叶飞爆料中源家居不就是因为他是中间人、还担保了,结果股价没有按要求市值管理上涨、还下跌了,这下自己也被上市公司割了韭菜,他当年搞那群老板的时候咋没想过这个后果呢?
另外,所谓市值管理这个行业多半是灰色地带,上市公司割机构、机构割上市公司,大家互相割,反正谁也不敢把这事儿捅出来,就算报警了也拿不到赔偿,因为本身就不合法,法律不予以支持拿到赔偿。”

远离庄股,远离杀猪盘
为什么说这件事如果坐实,几方都不是什么好人呢?股吧有投资者表示,中源家居的“杀猪盘”已经不是头一次了。

据投资者反映,中源家居的杀猪盘,去年4月份和8月份各发生过一次,2019年也“杀过一次猪”,加上今年3月份这次。
不得不让人感叹:“公司才上市三年,来回割了4茬韭菜!”

今年3月31日,中源家居股价直线跳水,当日大跌8.82%,4月1日直接跌停。
本周五,5月14日中源家居最新收盘价18.5元,3月31日以来累计下跌逾336%。
有投资者认为,中源家居公司总资产10个亿、净资产6亿、流通市值只有十几亿,每年也不亏损,有个几千万的净利润,典型的“鸡肋股”,差又不至于退市,好又达不到价值投资,所以完全是给杀猪盘营造机会嘛。
从技术手段来说,在中源家居“坐庄”确实容易,先花一个月时间买5000万,再用1000万对倒,做一个杀猪盘让庄家出货确实不难。
另外,干脆想拼个鱼死网破的叶飞还点名了昊志机电、维信诺、隆基机械、东方时尚等上市公司,并说自己计划爆料18家上市公司,一周一家,全是猛料。



有人说,叶飞这次就是个污点证人,现在他都“落魄”到了做控盘赚钱,还身背着限高压力,所以只有通过公开举报曝光,叶飞才能向他的下家证明他不是信口开河,他没有私吞保证金和尾款。
毕竟亏个几百万也不是小事儿,公开曝光做个“污点证人”,把事情闹大是自保的最好办法。

尾声
本周五,证监会正式就“媒体报道某微博大V爆料事件”答记者问,称将一查到底:

以“市值管理”行“割韭菜”之实的勾当,并不是个新鲜事,基本上隔一段时间就能被证监会查出来一次。
有些公司做的那叫“市值管理”吗?基本都是“韭菜管理”。
例如,当公司大股东想减持套现时,公司没啥利好消息,基本面也过于难看,股价不涨怎么办呢?
上市公司方会找到出资方(盘方)进行拉升,然后盘方再找一些机构(公募基金,私募基金等)来参与,拉抬股价。
大股东遂减持套现,减持完成之后,盘方和机构开始砸盘出货,最后大股东、盘方、机构一起分享利润,股民被套在最高点。
如果中间每个人都守口如瓶的话,一次完美的杀猪盘就这样神不知鬼不觉地走完了。
有些更“高明”的管理的手段还会“内外兼修,虚实结合”,粉饰报表、板块、公司前景,推升股价。
不过证监会对于从重从快从严打击资本市场欺诈、造假等违法活动,很有决心,去年共办理案件740起,其中新启动调查353件(含立案调查282件),办理重大案件84件,同比增长34%;2020年向公安机关移送及通报案件线索116件,同比增长一倍,打击力度持续强化。
所以,奉劝各位“市值管理”的操盘侠一句老话:要想人不知,除非己莫为啊。
转自:https://mp.weixin.qq.com/s/lpEc4Czd5-A-HeOzWNPLJw
◎智友学院(ID:zhiyoucf88)
◎作者 | 老肥、牛叫兽
这周末,证券市场出了一个大瓜:某私募冠军叶飞在微博上爆出行业黑料,指出多家上市公司和机构合谋操控股价。
被曝光的多家公司今天都被摁在跌停板上摩擦,顺便把小市值股票和ST股给带崩了。







转自:https://mp.weixin.qq.com/s/4dUY_h9eED9f9GgR3jGuhA
作者:大江狗
来源:Python Web与Django开发
大家好,我是猫哥。今天分享一篇文章,作者利用Django 3.0 +Redis 3.4 +Celery 4.4开发了个小应用。应用不复杂,但知识点很多,非常适合新手练手。项目需求如下:
创建两个页面,一个用于创建页面,一个用于动态展示页面详情,并提供静态HMTL文件链接
一个页面创建完成后,使用Celery异步执行生成静态HTML文件的任务
使用redis作为Celery的Broker
使用flower监控Celery异步任务执行情况

项目完成后演示见下面动画。本项目的GitHub源码地址在最后,请耐心阅读。

国内用户使用pip安装python包特别慢,这主要是应为国内连接国外网络不稳定。为加速python包的安装,首先将pip安装源设置为国内的镜像,比如阿里云提供的镜像。
linux系统修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:
[global]index-url = https://mirrors.aliyun.com/pypi/simple/
windows系统直接在user目录中创建一个pip目录,如:C:Usersxxpip,新建文件pip.ini,内容如下:
[global]index-url = http://mirrors.aliyun.com/pypi/simple/
使用pip命令安装Django.
pip install django==3.0.4 # 安装Django,所用版本为3.0.4
使用django-admin startproject myproject创立一个名为myproject的项目
django-admin startproject myproject
整个项目完整目录机构如下所示, 项目名为myproject, staticpage为app名。

项目中我们需要使用redis做Celery的中间人(Broker), 所以需要先安装redis数据库。redis网上教程很多,这里就简要带过了。
Windows下载地址:https://github.com/MSOpenTech/redis/releases
Linux下安装(Ubuntu系统):$ sudo apt-get install redis-server
本项目还需要安装如下依赖包,你可以使用pip命令逐一安装。
pip install redis==3.4.1
pip install celery==4.4.2
pip install eventlet # celery 4.0+版本以后不支持在windows运行,还需额外安装eventlet库
你还可以myproject目录下新建requirements.txt加入所依赖的python包及版本,然后使用pip install -r requirements.txt命令安装所有依赖。本教程所使用的django, redis和celery均为最新版本。
django==3.0.5
redis==3.4.1
celery==4.4.2
eventlet # for windows only
修改settings.py新增celery有关的配置。celery默认也是有自己的配置文件的,名为celeryconfig.py, 但由于管理多个配置文件很麻烦,我们把celery的配置参数也写在django的配置文件里。
# 配置celery时区,默认时UTC。
if USE_TZ:
timezone = TIME_ZONE
# celery配置redis作为broker。redis有16个数据库,编号0~15,这里使用第1个。
broker_url = 'redis://127.0.0.1:6379/0'
# 设置存储结果的后台
result_backend = 'redis://127.0.0.1:6379/0'
# 可接受的内容格式
accept_content = ["json"]
# 任务序列化数据格式
task_serializer = "json"
# 结果序列化数据格式
result_serializer = "json"
# 可选参数:给某个任务限流
# task_annotations = {'tasks.my_task': {'rate_limit': '10/s'}}
# 可选参数:给任务设置超时时间。超时立即中止worker
# task_time_limit = 10 * 60
# 可选参数:给任务设置软超时时间,超时抛出Exception
# task_soft_time_limit = 10 * 60
# 可选参数:如果使用django_celery_beat进行定时任务
# beat_scheduler = "django_celery_beat.schedulers:DatabaseScheduler"
# 更多选项见
# https://docs.celeryproject.org/en/stable/userguide/configuration.html
在settings.py同级目录下新建celery.py,添加如下内容:
# coding:utf-8
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
# 指定Django默认配置文件模块
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
# 为我们的项目myproject创建一个Celery实例。这里不指定broker容易出现错误。
app = Celery('myproject', broker='redis://127.0.0.1:6379/0')
# 这里指定从django的settings.py里读取celery配置
app.config_from_object('django.conf:settings')
# 自动从所有已注册的django app中加载任务
app.autodiscover_tasks()
# 用于测试的异步任务
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
打开settings.py同级目录下的__init__.py,添加如下内容, 确保项目启动时即加载Celery实例
# coding:utf-8
from __future__ import absolute_import, unicode_literals
# 引入celery实例对象
from .celery import app as celery_app
__all__ = ('celery_app',)
网上很多django redis + celery的教程比较老了, 坑很多。比如新版原生的Celery已经支持Django了,不需要再借助什么django-celery和celery-with-redis这种第三方库了, 配置参数名也由大写变成了小写,无需再加CELERY前缀。另外当你通过app = Celery('myproject')创建Celery实例时如果不指定Broker,很容易出现[ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused这个错误。
在Django中编写和执行自己的异步任务前,一定要先测试redis和celery是否安装好并配置成功。
首先你要启动redis服务。windows进入redis所在目录,使用redis-server.exe启动redis。Linux下使用./redis-server redis.conf启动,也可修改redis.conf将daemonize设置为yes, 确保守护进程开启。
启动redis服务后,你要先运行python manage.py runserver命令启动Django服务器(无需创建任何app),然后再打开一个终端terminal窗口输入celery命令,启动worker。
# Linux下测试
Celery -A myproject worker -l info
# Windows下测试
Celery -A myproject worker -l info -P eventlet
如果你能看到[tasks]下所列异步任务清单如debug_task,以及最后一句celery@xxxx ready, 说明你的redis和celery都配置好了,可以开始正式工作了。
-------------- celery@DESKTOP-H3IHAKQ v4.4.2 (cliffs)
--- ***** -----
-- ******* ---- Windows-10-10.0.18362-SP0 2020-04-24 22:02:38
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: myproject:0x456d1f0
- ** ---------- .> transport: redis://127.0.0.1:6379/0
- ** ---------- .> results: redis://localhost:6379/0
- *** --- * --- .> concurrency: 4 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
[tasks]
. myproject.celery.debug_task
[2020-04-24 22:02:38,484: INFO/MainProcess] Connected to redis://127.0.0.1:6379/0
[2020-04-24 22:02:38,500: INFO/MainProcess] mingle: searching for neighbors
[2020-04-24 22:02:39,544: INFO/MainProcess] mingle: all alone
[2020-04-24 22:02:39,572: INFO/MainProcess] pidbox: Connected to redis://127.0.0.1:6379/0.
[2020-04-24 22:02:39,578: WARNING/MainProcess] c:usersmissenkapycharmprojectsdjango-static-html-generatorvenvlibsite-packagesceleryfixupsdjango.py:203: UserWarning: Using sett
ings.DEBUG leads to a memory
leak, never use this setting in production environments!
leak, never use this setting in production environments!''')
[2020-04-24 22:02:39,579: INFO/MainProcess] celery@DESKTOP-H3IHAKQ ready.
cd进入myproject文件夹,使用python manage.py startapp staticpage创建一个名为staticpage的app。我们将创建一个简单的Page模型,并编写两个视图(对应两个URLs),一个用于添加页面,一个用于展示页面详情。staticpage目录下我们将要编辑或创建5个.py文件,分别是models.py, urls.py, views.py, forms.py和tasks.py,其中前4个都是标准的Django项目文件,内容如下所示。最后一个tasks.py用于存放我们自己编写的异步任务,稍后我会详细讲解。
# staticpage/models.py
from django.db import models
import os
from django.conf import settings
class Page(models.Model):
title = models.CharField(max_length=100, verbose_name="标题")
body = models.TextField(verbose_name="正文")
def __int__(self):
return self.title
# 静态文件URL地址,比如/media/html/page_8.html
def get_static_page_url(self):
return os.path.join(settings.MEDIA_URL, 'html', 'page_{}.html'.format(self.id))
# staticpage/urls.py
from django.urls import path, re_path
from . import views
urlpatterns = [
# Create a page 创建页面
path('', views.page_create, name='page_create'),
# Page detail 展示页面详情。动态URL地址为/page/8/
re_path(r'^page/(?P<pk>d+)/
从page_create视图函数中你可以看到我们在一个page实例存到数据库后调用了generate_static_page函数在后台完成静态HTML页面的生成。如果我们不使用异步的化,我们要等静态HTML文件完全生成后才能跳转到页面详情页面, 这有可能要等好几秒。generate_static_page就是我们自定义的异步任务,代码如下所示。Celery可以自动发现每个Django app下的异步任务,不用担心。
# staticpage/tasks.py
import os, time
from django.template.loader import render_to_string
from django.conf import settings
from celery import shared_task
@shared_task
def generate_static_page(page_id, page_title, page_body):
# 模拟耗时任务,比如写入文件或发送邮件等操作。
time.sleep(5)
# 获取传递的参数
page = {'title': page_title, 'body': page_body}
context = {'page': page, }
# 渲染模板,生成字符串
content = render_to_string('staticpage/template.html', context)
# 定义生成静态文件所属目录,位于media文件夹下名为html的子文件夹里。如目录不存在,则创建。
directory = os.path.join(settings.MEDIA_ROOT, "html")
if not os.path.exists(directory):
os.makedirs(directory)
# 拼接目标写入文件地址
static_html_path = os.path.join(directory, 'page_{}.html'.format(page_id))
# 将渲染过的字符串写入目标文件
with open(static_html_path, 'w', encoding="utf-8") as f:
f.write(content)
本例中我们生成的静态HTML文件位于media文件夹下的html子文件夹里,这样做有两个好处:
与Django的静态文件存储规范保持一致:用户产生的静态文件都放在media文件下,网站本身所依赖的静态文件都放于static文件夹下。
把所有产生的静态文件放在一个目录里与动态文件相分开,利于后续通过nginx部署。
本项目中还用到了3个模板,分别是base.html, detail.html和template.html。base.html和detail.html是没有任何样式的, 仅用于动态显示内容,template.html是用来生成静态文件的模板,是带样式的,这样你就可以很快区分动态页面和静态页面。由于我们后台生成静态文件至少需要5秒钟,我们在detail.html用了点javascript实现等5秒倒计时完成后显示生成的静态HTML文件地址。
3个模板均位于staticpage/templates/staticpage/文件夹下,代码如下所示:
# base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加页面</title>
</head>
<body>
<h2>添加页面</h2>
<form name="myform" method="POST" action=".">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
</body>
</html>
# detail.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ page.title }}</title>
</head>
<body>
<h2>{{ page.title }}</h2>
<p>{{ page.body }}</p>
<p>倒计时: <span id="Time">5</span></p>
<p id="static_url" style="display:none;"> <small><a href='{{ page.get_static_page_url }}'>跳转到静态文件</a></small></p>
<script>
//使用匿名函数方法
function countDown(){
var time = document.getElementById("Time");
var p = document.getElementById("static_url");
//获取到id为time标签中的内容,现进行判断
if(time.innerHTML == 0){
//等于0时, 显示静态HTML文件URL
p.style.display = "block";
}else{
time.innerHTML = time.innerHTML-1;
}
}
//1000毫秒调用一次
window.setInterval("countDown()",1000);
</script>
</body>
</html>
# template.html 生成静态文件模板
{% load static %}
<html lang="en">
<head>
<title>{% block title %}Django文档管理{% endblock %} </title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top bs-docs-nav">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" >
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#"><strong>Django + Celery + Redis异步生成静态文件</strong></a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav navbar-right">
{% if request.user.is_authenticated %}
<li class="dropdown">
<a class="dropdown-toggle btn-green" href="#"><span class="glyphicon glyphicon-user"></span> {{ request.user.username }} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">My Account</a></li>
<li><a href="#">Logout</a></li>
</ul>
</li>
{% else %}
<li class="dropdown"><a class="dropdown-toggle btn-green" href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
<li class="dropdown"><a class="dropdown-toggle" href="#" ><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
{% endif %}
</ul>
</div>
</div>
</nav>
<!-- Page content of course! -->
<main id="section1" class="container-fluid">
<div class="container">
<div class="row">
<div class="col-sm-3 col-hide">
<ul>
<li> <a href="{% url 'page_create' %}">添加页面</a> </li>
</ul>
</div>
<div class="col-sm-9">
<h3>{{ page.title }}</h3>
{{ page.body }}
</div>
</div>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>
# 修改myproject/settings.py,添加如下内容
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'staticpage',
]
# 设置STATIC_URL和STATIC_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# 设置MEDIA_ROOT和MEDIA_URL
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
# 修改myproject/urls.py,添加如下内容
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include("staticpage.urls")),
]
# Django自带服务器默认不支持静态文件,需加入这两行。
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
如果一切顺利,连续使用如下命令, 即可启动Django测试服务器。打开http://127.0.0.1:8000/即可看到我们项目开头的动画啦。注意:请确保redis和celery已同时开启。
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
如果你要监控异步任务的运行状态(比如是否成功,是否有返回结果), 还可以安装flower这个Celery监控工具。
pip install flower
安装好后,你有如下两种方式启动服务器。启动服务器后,打开http://localhost:5555即可查看监控情况。
# 从terminal终端启动, proj为项目名
$ flower -A proj --port=5555
# 从celery启动
$ celery flower -A proj --address=127.0.0.1 --port=5555
监控异步任务还是很重要的,强烈建议安装flower。比如下图中有些任务就失败了。

https://github.com/shiyunbo/django-static-page-generator-celery-redis

送书活动

本书共13章,主要内容涵盖Python语法及数据分析方法。章主要介绍数据分析的概念,使读者有一个大致的印象,并简单介绍本书频繁使用的Python的5个第三方库。第2章主要做一些准备工作,手把手带读者搭建Python环境,包括Python 3.7.6的安装和pip的安装。第3章介绍Python编程基础。第4章到第7章介绍使用Python进行简单数据分析的基础库,包括NumPy、Pandas和Matplotlib库,并介绍使用正则表达式处理数据的方法。第8章到3章属于进阶内容,但也是Python数据分析的基础,结合机器学习介绍一些常见的用于数据分析的机器学习算法及常用的数学模型。
赠书规则
赠书本数:本次共包邮送书 3 本
, views.page_detail, name=’page_detail’),
]
# staticpage/views.py
from django.shortcuts import render, redirect, get_object_or_404
from django.urls import reverse
from .forms import PageForm
from .models import Page
from .tasks import generate_static_page
def page_create(request):
if request.method == ‘POST’:
form = PageForm(request.POST)
if form.is_valid():
page = form.save()
generate_static_page.delay(page.id, page.title, page.body)
return redirect(reverse(‘page_detail’, args=[str(page.pk)]))
else:
form = PageForm()
return render(request, ‘staticpage/base.html’, {‘form’: form})
def page_detail(request, pk):
page = get_object_or_404(Page, id=pk)
return render(request, ‘staticpage/detail.html’, {‘page’: page})
# staticpage/forms.py
from django import forms
from .models import Page
class PageForm(forms.ModelForm):
class Meta:
model = Page
exclude = ()
从page_create视图函数中你可以看到我们在一个page实例存到数据库后调用了generate_static_page函数在后台完成静态HTML页面的生成。如果我们不使用异步的化,我们要等静态HTML文件完全生成后才能跳转到页面详情页面, 这有可能要等好几秒。generate_static_page就是我们自定义的异步任务,代码如下所示。Celery可以自动发现每个Django app下的异步任务,不用担心。
本例中我们生成的静态HTML文件位于media文件夹下的html子文件夹里,这样做有两个好处:
与Django的静态文件存储规范保持一致:用户产生的静态文件都放在media文件下,网站本身所依赖的静态文件都放于static文件夹下。
把所有产生的静态文件放在一个目录里与动态文件相分开,利于后续通过nginx部署。
本项目中还用到了3个模板,分别是base.html, detail.html和template.html。base.html和detail.html是没有任何样式的, 仅用于动态显示内容,template.html是用来生成静态文件的模板,是带样式的,这样你就可以很快区分动态页面和静态页面。由于我们后台生成静态文件至少需要5秒钟,我们在detail.html用了点javascript实现等5秒倒计时完成后显示生成的静态HTML文件地址。
3个模板均位于staticpage/templates/staticpage/文件夹下,代码如下所示:
如果一切顺利,连续使用如下命令, 即可启动Django测试服务器。打开http://127.0.0.1:8000/即可看到我们项目开头的动画啦。注意:请确保redis和celery已同时开启。
如果你要监控异步任务的运行状态(比如是否成功,是否有返回结果), 还可以安装flower这个Celery监控工具。
安装好后,你有如下两种方式启动服务器。启动服务器后,打开http://localhost:5555即可查看监控情况。
监控异步任务还是很重要的,强烈建议安装flower。比如下图中有些任务就失败了。

https://github.com/shiyunbo/django-static-page-generator-celery-redis
转自:https://mp.weixin.qq.com/s/krlB0WdHpW1GSJhl2SinKw
1
大家好,我是格隆。我已经很少出来讲座了,一是无需讲。在发生什么,摆在那,一点也不复杂。二是无须讲。懂的人自然知道该做什么,不懂的人讲再多也没用,徒然扰人清梦。
但岭南是我第二故乡,你们秘书长说在座有300多位企业家,几乎囊括和代表了这块土地上最核心的经济实力,所以我是抱着自家人唠嗑的心态过来的。如果唠完,都能有所收获,皆大欢喜。唠完了,一无所获,也不必怨艾,当我没来过,大家相忘江湖,快马加鞭,各奔前程好了。
今天我们脚下的这块热土,是中国GDP最高的省份,也是中国第一个GDP跨越11万亿门槛的省份,也是中国人口最多的省份。
最新七普数据,人口仍在源源不断涌入。过去十年,广东人口净新增超过2169万人,这个数字,是净新增排名第二、第三、第四的浙江、江苏、山东三省的总和。

此心安处是吾乡。人们自己知道该去往哪里。
但事实上,在中国有文字记载的3600年历史上,岭南绝大多数时候都只是一个“衡阳雁去无留意”的烟瘴蛮荒之地,只是因为官员贬谪才偶尔见诸于史籍。如果没有魏晋时期汉民族那段充满血泪、堪称史诗级的大逃亡大迁徙,有无今日岭南之繁盛,殊未可知。
汉民族在历史上有过多次危急时刻,但最接近亡种的时候,就是魏晋南北朝时期。魏晋南北朝上承秦汉大帝国的消亡,下启隋唐盛世的兴起,长达360余年的时间,汉人如鼠豚一样被肆意驱赶、屠戮,永嘉之乱后北方两大中心洛阳与长安被几度屠城,几乎被夷为平地,华北地区人口在永嘉之乱后八年之内消失90%。所谓千里累白骨,万里无鸡鸣,十室九空如是。
那是一段民族大崩溃、大迁徙、大分化、大动荡、大融合的历史。贫穷,战争、屠戮、饥荒、瘟疫,几乎所有贬义词都可以用来形容它。富者良田千陌,贫者无立锥之地。一个在云端享受着神一般的生活,放荡自由,一个在地狱承受着万蛊吞噬,生不如死。一段既糟糕又华丽,冰与火共舞,黑暗与光明并存的时代。
不同于政治黑暗,时事动荡,不同于经济凋敝,民不聊生。魏晋思想、文学、诗人,都堪称中国历史最优之一。竹林七子自不必说,那个时代的女诗人也一个个才华横溢,蔡琰、苏若兰、左芬、谢道韫、鲍令辉、韩兰英…,是中国历史上少有的一笔恢弘亮色。其中的佼佼者谢道韫,聪慧过人,因实在接受不了夫婿王凝之(王羲之次子,善草书,先后任江州刺史、左将军)的“平庸”,在回家省亲时闷闷不乐,谢安问何故?谢道韫是这样回答的:“一门叔父,有阿大(谢尚)、中郎(谢据)。群从兄弟复有“封、胡、羯、末”,不意天壤之中,乃有王郎!”
“不意天壤之中,乃有王郎”——恃才放旷,溢于言表,以致一千多年后,同病相怜的秋瑾还在赋诗为她抱不平:可怜谢道韫,不嫁鲍参军。
但就是这样一个才高八斗的才女,在晋末孙恩之乱时,夫婿王凝之为会稽内史,守备不利被杀。谢道韫听闻敌至,举措自若,拿刀出门,杀敌数人才就虏。匪首孙恩感其节义,赦免谢道韫及族人。王凝之死后,谢道韫在会稽独居,终身未改嫁。
苦难中浸淫出来的人和事,出乎意料地比同时代的其他东西优秀得多。有晋一朝,有大批能力有志向改变时局的人,他们在苦难中挣扎救世,不屑入世的人,则依旧保持自己的高傲风骨,出淤泥而不染。
魏晋不只有暴乱、动荡、战争、死亡,还有累累白骨砌成的魏晋风骨。
任何一个民族在发展过程中,均不可能一帆风顺。总会遇到各种天然的灾难和人为的灾难。当灾难降临之时,民族是否具有自我修复能力,是一个民族是否可以延续民族生存及民族发展的根本标志。
修复靠什么?
骨子里的气节与底线,是谓风骨。
2
我们回到经济。
当下做生意也好,做投资也罢,你要考虑的最大国情是什么?
我直接说答案:两个。
一个是通胀,一个是人口。前者决定了未来3年我们环境的氧含量,后者则决定未来30年,乃至几代人能拥有什么样的生活。
先说通胀。
4月信贷和社融数据出来后,很多人问我:说好的货币政策不急转弯的呢?这不是不急转弯,是哐当一家伙直接砸地上啊:

我回答:再不收,通胀会比瘟疫还不可控。
听者不以为然,说我们哪来的通胀?CPI温和得像只小绵羊:

怎么说呢?得感谢二师兄的鼎力支持。但千万不要被他的障眼法骗了。很多人都被货币银行学的入门教材带偏了,以为天经地义且只应该用CPI度量通胀。
不是的。理论学者习惯于用CPI研究通胀,但没有一个央行行长会盯着CPI制定货币政策。他们盯的是PPI。CPI是结果。如果等CPI起来了才采取动作,黄花菜都凉了。
基本的经济学逻辑是:人类经济活动,生产在消费之前。对任何一个经济或者货币周期而言,PPI肯定比CPI先行,且除非经济体有巨大脑血栓或者肠梗阻,否则,PPI一定传导到CPI。
那么,PPI什么表现?

CPI与PPI之间,高达600个点的巨大缺口。
6.8%的PPI意味着什么呢?
知名学者CCER助教采用了几个不同计算。
最简单的入门级处理,本月PPI环比0.9%,折一下年率,大概PPI能到11.4%。
有没有更精细一点的做法呢?
有的,环比毕竟波动大,如果一个月波动很大,再折年其实并不太妥,我们用相对平均(3个月或者6个月)的数据去年化。结果是,过去3个月,PPI累计增长了3.3%,那么折年大概在14%左右。过去6个月,PPI累计增长了6%,折年率在12% 左右。
更进一步,就有点工作量了,就是计算每月的新涨价,做一个定基数,把前一年的12月作为100,然后累计上去。结果是什么呢?

很明显,今年1-5月的上涨速度极其惊人。我们的历史上还从来没有一个高通胀年份有过这么快的PPI上涨。上面这个图告诉我们,即使到今天为止,后面7个多月,所有价格都不再上涨,今年的PPI涨幅也超过历史上任何一年。
稍微来点计量软件,通过季节调整,再做个3个月折年率,那么最近3个月的PPI实际达到了20%:

这个速度,是1995年以来的最高,我们正在经历26年以来最快的通胀。CCER助教预测5月PPI应该加快到9%附近,如果没有任何措施,年底可以到15%甚至以上。
其实根本不用这么严谨和复杂的理论研究,随便看看那些看得见的商品走势,就知道我们正在经历什么:

沪铝13年新高,沪铜15年新高,铁矿石历史新高。过去7个月,螺纹钢涨79%,动力煤涨73%,玻璃涨84%。
过剩得不能再过剩,夕阳得不能再夕阳的钢铁这么涨,是对产业进化发展规律的羞辱。不出意外,上游企业的狂欢,很快将转化为下游企业的停产潮,甚至破产潮。
没有几家下游企业扛得住。
接着会轮到CPI。
很快你会发现,你会吃不起一串羊肉串。
不是羊肉涨价。
羊肉可以免费奉送。是串肉的铁签子和烤碳太贵了。
再重复一遍结论:
1、我们正在经历过去26年来最快的通胀;
2、加息在路上,不以人的意志为转移,无论美国,还是中国;
3、过去这些年,全球央行联合放水打造的资产泡沫浴,或要收场;
4、保护好你的财富,向硬资产、硬通货靠。
3
再来谈谈人口。
七普数据,很多人说数据有问题,问我怎么看?
确实有些数据无法自洽。
但统计学的意义在于提供模糊的正确。如果挑统计局的刺,意味着完全放弃统计局的庞大数据,这于投资而言,肯定是极不划算的。
至于数据本身,怎么说呢,除了答记者问时口头公布的生育率、人口性别比例有所改善外,官方正式公布的七普数据,几乎无一例外都在指向一个严峻的事实:中国正在发生剧烈的人口变动,这必将影响中国未来几十年的经济、社会和地缘政治前景。
人口形势的严峻表现在:
1、越来越少子化(0—14岁人口);
2、劳动适龄人口(15—59岁人口)加速减少;
3、老龄化迅速加深(60岁以上人口);
4、家庭规模加速萎缩。
具体数据我不列举了,有兴趣的朋友可以去找找我前期的另一篇演讲稿《中国的近忧与远虑》,那里都有。
其实多数人都已注意到了人口的前面三个问题,我重点讨论第四个。
极少有人理解家庭规模的迅速萎缩,会对中国社会与经济产生多么重大的冲击和深远的影响。
给大家看一张图:

从上图可以很清晰看出,改开以来40年(1979—2019)中国的经济繁荣,与大家庭关系网壮大的趋势不谋而合。
这个并不意外。
在过去40年,数量庞大的处于劳动年龄的亲兄弟姐妹、表堂兄弟姐妹和叔伯姨妈,为彼此提供打工、创业的途径,同时有效庇护家族成员平稳度过发展期中的大多数惊涛骇浪,同时承担中国脆弱的社会保障体系外最关键的养老、育儿角色。
从我们有文字记载的历史算起,由各种非正式社会关系(主要就是家庭与血缘)组成的人脉网络就是我们经济最大的润滑剂与微观扩张基础。它帮助人与人之间产生必要的信任与互助,通过减小不确定性和简化交易过程来平滑和降低交易成本,帮助那些最能干和谦逊的人做成生意。
人类之所以群居,是因为群体以自身的粘性与能力加持能最大程度消除不确定性。儒家的宗法社会,礼乐,就是其规则与粘性之一。孔子说慎终怀远,民德归厚,孟子说乡人守望相助,疾病相扶持,都是在小群体为了存续而必须坚守的规范与道德。人在小群体中有相互有预期,因此才能够为小群体做出牺牲,为他人做出牺牲——自己为宗族而死,妻子孩子都不用操心,大家都会管。华夏文明未灭,跟这种宗族、宗法制度关系很大,哪怕在汉民族最悲戚的魏晋五胡乱华时代,北方豪族结堡自守,子弟兵战斗力爆表,也能护佑宗族和一方平安。
可以这么说,再怎么强调大家庭在中国过去40年经济奇迹中的作用,都不为过。没有了大家庭的隐性支撑与润滑,中国想象过去40年那样获得那么庞大和廉价数量的劳动力,几乎不可能。
但这个独立于政府体系外的家族互助网络,在被迅速打散和塌陷。
最新数据显示,中国家庭户均规模4.8已降到2.62:

中国30-39岁人群拥有的堂表亲数量,则已从最高峰的57.29回落到51.38。
回到前面那张表亲数量图。如果我们假设未来中国生育率稳定在1.2(2020年是1.3,考虑到这几年巨大的二孩堆积效应,1.2的假设是理性且合理的),出生性别比例从118一路下降到2040年的107,人均寿命按73.5岁,则中国30-39岁人群拥有的堂表亲数量,30年后会一路崩落到仅仅7个左右的水平:

到2050年,中国30岁以下年轻人拥有的表唐兄弟姐妹数量将只有现在年轻的五分之一,几乎六分之一的儿童就根本没有表唐兄妹,且60岁以上的老人中大约一半的人将只有一个在世子女。在中国的下一代人中,将会有相当数量的人,在从学校到工作到退休的一生中,根本就不会经历中国传统文化中不可或缺的大家庭。他们这一代人将是实际见证2500年儒家大家庭传统日渐式微的一代人。
这意味着大家庭从基础开始塌陷,中国传统的家族、宗族、亲属关系的大幅萎缩——这将极大增加个人闯荡社会的风险与成本,背负沉重的经济负担,使其无力迁徙与冒险创业。
而未来血亲数量的大幅下降,极大概率会严重削弱我们的经济增长潜能。随着家庭成员的减少,人们承担风险的能力与意愿都会大幅下降。人们会逃避创业,并减少和阻滞人口流动与阶层变动——推动中国城市化与经济增长的流动人口往往要依赖可靠的人脉去寻找工作和住所,如果在城里没有堂表亲提供住所,在农村没有亲(老)人帮忙照顾小孩,过去多年驱动城市化的引擎还能不能有效,大概率存疑。
再过一代人的时间,中国大概率会比现在更加富有。但老年人的迅速增长以及家庭的加速萎缩,会迫使我们在未来几十年把自己转变成一个庞大的社会福利国家——这意味着,我们能动用发展经济的资源会变少,而我们变富的速度也会越来越慢。
全社会上下,未来核心要做的唯二的两件事,一是鼓励生育,二,还是鼓励生育。
少弄那些没意义的抵制、争执、争吵,有用吗?有劲吗?
在座的诸位是幸运的,你们事实上享受了中国五千年历史上前无古人,大概率也后无来者的最大一波人口红利。你们赚到了钱,也是开始该反哺社会的时候。
未来诸位的钱,要么不投,要投,就请尽量投向能帮助、促进、润滑、刺激生育和人口增长的领域,坚决回避那些会增加生育焦虑、增加生养成本的领域。

刚才课下讨论,还有人在问我能不能投K12教育?
你说能不能投?政府不找你,天下父母也联手会灭了你——躺平,根本不给你生,看你到哪找娃上补习班?
4
尾声
时间差不多了。我最后讲点题外话。
无论投资,还是做生意,赚快钱的时候肯定过去了。环球的含氧量都在变低。但这并不意味着我们不能做些力所能及的事,去让族群更强大,让生意更持久。
要求并不高,保持你的智慧,保持你的独立思考。
我很喜欢下面这段话,睿智而深刻,送给大家:
“当接触到挑战自己认知甚至颠覆三观的新观点和新事物时,首先不要急于否定,而是问问自己,你所知道的是不是大多数地球人都知道的?既然你和大多数人地球人获取信息的能力以及渠道没什么差别,你又是哪里来的自信去反驳平庸的你所不认可的东西呢?”
“就因为人多?在股市里,散户也人多,但他们总是输!”
从制度经济学角度,一个社会最可怕的长远危机是什么?
不是人口,不是科技。这些都只是后置结果,而非前置变量。
是人群的盲从。
所有社会个体如同工厂模块浇铸出来的机器,没有学习,没有思考,没有质疑。有的,只是服从与执行。同时这些机器会自觉集体攻击、扼杀任何独立思考与质疑。
这会把一个社会的创造力侵蚀消弭殆尽,并令整个社会丧失纠错能力,以致各种吃过的苦、受过的罪,会一茬一茬,一遍又一遍地轮回。
盲从,是一个群体最大的恶与堕落,也是他们自己能给到自己的最大的伤害。

转自:https://mp.weixin.qq.com/s/CFnE-B5r1AKKPwaKkd0rvg