AI量化策略平台化:Django-Allauth会员管理(代码+数据)

Quantlab3.5的源代码和数据 | 关于健康、财富,意义的思考

1、数据加载逻辑重构,本地读一个统一的文件夹。不存在的数据,会尝试从服务器读取。——省去大家下载数据的工作,进而专注在策略开发中。

2、策略模板统一化,不需要指定:大类资产配置,轮动,择时或者多策略组合。

之前咱们在Django, Flask和FastApi用哪个框架做后端摇摆过很多次。

我这里再简单总结一下,方便希望做自己量化平台系统架构的同学参考。

由于是AI系列,python无疑是最好的选择。AI技术栈,python生态有明显的优势。在金融量化领域,也是。即便是追求高频,高性能的私募公司,底层使用c++,rust或者go来提升效率,上层仍然使用python追求策略的简洁与交付的效率。

python的web生成也非常成熟。刚说的三大框架,为何我们选择了Django?

其实还是生态,看似起步的时候重一些,但你的功能到一定程度,这些都会只多不少,反而Django帮我们做了不少事情。

Django-ninjia的出现,相当于把FastApi给整合起来了。因FastApi就不需要了。而Flask,当我们用用户管理,ORM, Admin这一套整合完之后,发现代码结构越发像Django,而且还花了不少功夫。——这一切,Django是开箱即用的。

今天我们讲的Django-AllAuth,就是简化了用户注册,登录,修改密码之类,不难但细节不少。

官方文档如下:https://docs.allauth.org/en/latest/

使用:  pip install django-allauth进行安装。

配置过程比较简单,熟悉Django的同学很快就能用起来:

1、加入Apps列表:

INSTALLED_APPS = [
    ...
    # The following apps are required:
    'django.contrib.auth',
    'django.contrib.messages',

    'allauth',
    'allauth.account',

2、加入中间件:

MIDDLEWARE = (
    "django.middleware.common.CommonMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",

    # Add the account middleware:
    "allauth.account.middleware.AccountMiddleware",

3、加入URL:

urlpatterns = [
    ...
    path('accounts/', include('allauth.urls')),
    ...
]

一个完整的用户注册功能就完成了,以下就是django-allauth提供的功能,包括:注册,登录,登出,重新激活,修改密码等等。

图片

界面简陋,但功能是完全可用的:

图片

写过完整的用户系统的同学会知道,如果你在flask要搭建这个流程,且要花一番功夫,调试,还容易出bug。

剩下的,我们使用bootstrap来美化一下这些页面就可以了。——这也体现在django生态的厉害之处!

从github下载Djanto-Allauth的原码,把templates/account的下目录拷贝到咱们新创建的myaccount App下。

图片

美化以后界面如下:

图片

django-allauth,总体感觉是非常好的,你只自己真正要开发一个应用的时候,才知道看似不难的事情,有多少细节。

而django-allauth没有提供个人主页,因为这个需求太个性的,实现起来不难,但基本就是一份工作量。而注册,登录,改密码,发邮件,激活邮件,几乎都是这样的一份代码。挺麻烦的,几天的工作量吧,而借django-allauth,小半天就搞出来了。

大家看下基础效果:

图片

吾日三省吾身

重启Django重启后端,有一个很深的感悟。

“简单”的事情重复做。

世界的规律,很大程度就是重复。比如细胞,就是复制;雪花也是分形。自然法则就是“物竞天择,适者生存”——突变+筛选。如果简单,去如果繁荣的生态。

做技术也一样,不要今天搞搞这个,明天搞搞那个,选好型,有些困难需要跨过去,就形成闭环了。

做金融量化架构的角度,小团队的话:

python+Django+mysql+mongo+bootstrap+jquery。我把用了好久的Dagster都打算弃掉,直接使用django-apscheduler就好。

——如无必要,不加实体。

保持简单,专注。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103503
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注