一直在蛋疼,从未休止过

2025-07-31
Django Allauth / Ninja 后端 搭配 Tanstack 前端的避坑 Tips

后端:Django Allauth Headless + Ninja API 前端: Tanstack Start + Query + Orval +

在这篇文章中,我想与大家分享我使用 Django Allauth 无头(Headless)后端认证,与 TanStack Start前端结合使用的经验和心得。我今年才刚刚学习 Web 编程,定有不少错漏,还望读者指正。

演示项目代码库

https://github.com/sd44/django-allauth

项目背景

Life is short, you need Python

虽然目前前后端分离架构正被 TypeScript 一体化框架(如Next.js/Tanstack Start等)冲击,特别是在要求全栈协作、类型一致性、小团队敏捷项目上,但我仍爱 Python Django 的简洁清晰、快速开发和易于维护。本文无意也无力讨论架构的优劣,就此打住吧。

Django AllauthNextAuth.js, Better Auth都提供多种认证方式(如手机号码、邮箱、通行密钥、数十种社交账户认证等)。但官方 Allauth Headless + React SPA示例仍然是 JS,而非 TS 代码;网络上也缺乏Allauth 对接 SSR(如Tanstack, Next.js) 的教程。本文便由此而生,但限于篇幅,只提出个别避坑指南。

技术栈

  • 后端:Django, Django Allauth, Django Ninja
  • 前端:ReactTanStack Start/Query
  • 数据库:Django支持的多种数据库均可,Django 也提供了近乎完美的数据库迁移指令

步骤概述

1. 设置 Django 后端

首先,安装 Django 和 Django Allauth, Django Ninja 等,参见官方文档和代码库 backend/pyproject.toml, backend/mysite/settings.py

settings.py 中需要注意如下几点。

1
[rectangle setX: 10 y: 10 width: 20 height: 20];

2. 配置 Django Allauth 路由

在 urls.py 中添加 Allauth 的 URL 路由:

from django.urls import path, include

urlpatterns = [ # … path(‘accounts/’, include(‘allauth.urls’)), # …]

3. 创建前端项目

使用 Create React App 创建前端项目:

npx create-react-app my-app

安装 TanStack Query:

npm install @tanstack/react-query

4. 使用 TanStack 进行认证

在前端中,使用 TanStack 来处理 API 请求和认证。

import { useQuery, useMutation } from ‘@tanstack/react-query’; import axios from ‘axios’;

const login = async (credentials) => { const response = await axios.post(‘/accounts/login/’, credentials); return response.data; };

const useLogin = () => { return useMutation(login); };

5. 完成认证流程

在组件中调用 useLogin,并处理登录信息。

import React, {useState} from ‘react’; import {useLogin} from ‘./api’; // 假设你的用法 import {useQueryClient} from ‘@tanstack/react-query’;

const LoginForm = () => { const queryClient = useQueryClient(); const mutation = useLogin(); const [email, setEmail] = useState(’‘); const [password, setPassword] = useState(’’);

const handleSubmit = async (event) => { event.preventDefault(); mutation.mutate({email, password}, { onSuccess: () => {// 登录成功后缓存用户数据 queryClient.invalidateQueries([‘user’]);}, onError: (error) => {console.error(“Login failed:”, error);}, }); };

return (
<input type=“email” value={email} onChange={(e) => setEmail(e.target.value)} required /> <input type=“password” value={password} onChange={(e) => setPassword(e.target.value)} required />

); };

总结

通过结合 Django Allauth 的强大功能与 TanStack 的灵活性,我成功实现了一个高效、安全的无头认证系统。这个组合不仅提升了开发效率,也使得前端开发变得更加顺畅。

Read More

2025-07-31
老人与海 双语对照 + 词汇中文注解 pdf

2024 年,我用 LaTeX 排版了《老人与海双语对照 + 词汇中文注解》 pdf,其中生词以初中生学力为基准,并献给我的儿女子墨、子韩和伟大的 FREEMDICT

请点击链接下载 项目源代码及 PDF

隐藏福利: 《1984》双语对照在 以上链接1984文件夹下

Read More

2025-04-22
我的书《梦园呓语 —— 我的三观独白》

下载地址:

PDF(推荐):Github 格式完整,观感更好

在线 HTML:点我观看

项目地址:最新 PDF 代码库

目录如下:

Read More

2024-06-25
如何编辑自己的书

本文主要是机器翻译自 https://www.wikihow.life/Edit-a-Book 中的第一部分。

Read More

2024-06-22
被现代经济学 "遗忘" 的经济学理论(一)

被现代经济学” 遗忘” 的经济学理论

前言

本文写作之初,本想主要借助于哈里・兰德雷斯(Harry Landreth)和大卫・C・柯南德尔(David C.Colander)的《经济思想史》一书,厘清被现代 经济学” 遗忘” 的那些曾经的主流经济学理论 —— 那是经济学发展的历史脉络,对于理解经济学本质有相当裨益。

Read More

2018-09-19
空间生产之丁家庄城中村(一)

以下只是粗陋的第一版草稿,可直接移步 Github 下载最终成书 PDF,获得更好观感。

背景介绍

济南市丁家庄,又名丁家村、丁家新村,据 1992 年 5 月 1 日所立村碑记载:

明永乐年间(1403-1424)当地根据传说取村名” 定妖庄”。后因此名不雅,故以” 定” 字谐音” 丁” 字改为丁家庄。

丁家庄隶属于山东省济南市姚家街道,是济南市一个较大且密集的城中村,在二十年前就已开始为外来务工人员提供住房等服务,共有村民宅基地(院落)近 800 户 5000 人,外来流动人口峰值大约可达 30000 人。丁家村城中改造是山东省棚改旧改的重点项目,于 2017 年年底基本完成房屋拆除工作,拆迁面积约为 53 万平方米(村民宅基地、公益性公共设施用地加上经营性用地等)。

Read More

2018-09-16
空间生产之曾经的城中村的基本概念

所谓城中村者,城市和村庄性质兼而有之:它深处城市之中,作为城市的一部分,周边均具城市特征,自身却充斥着农村式的无序和自然,缺乏人工的总体规划,各家各户的宅地界限比纯粹的村庄还要不清晰和混乱,基础设施(能源、通讯、供水、交通、安全、卫生、医疗、文化等)薄弱,原生住户基本为农村户籍,土地制度仍为农村集体所有制而非城市的全民所有制;作为农村,它的外来流动人口数量数倍,甚至数十倍于原生居民,耕地被大量或完全占用,转为商业或住宅地产,耕地的这种性质转变使原生居民原先赖以生存的农业收入转为地产收入,并成为原生居民收入的重要来源。

Read More

2018-09-10
联合国债务与人权问题独立专家的历年报告摘抄

布雷顿森林机构和发达国家常为向其它国家贷款或减债而附加自由化、私有化、全球化的条件,联合国多项机构和议题均涉及对此的强烈批判。因相关议题和文档过多,笔者以较为随机的方式选择了外债与人权独立专家的年度报告作为切入点,以求管中窥豹。综合来看,独立专家人选不同,其倾向、水平也有不同,希望大家能够批判辩证来看。笔者个人认为,Fantu Cheru 的报告有理有据,水平极高,可作重点研究。

Read More

2018-08-31
有关中国(一)

以下只是粗陋的第一版草稿,可直接移步 https://github.com/sd44/dingjia 下载成书 PDF。

Read More

2018-08-23
推荐杨宇振所著《资本空间化 —— 资本积累、城镇化与空间生产》

笔者作为一个业余民科,常感中国学界在空间生产,空间权利和空间正义方面,仍具良好学术态度、道德,且具活跃度、批判性与普世心,这在当今世界不管哪个领域都实属可贵。因现实各种原因,他们的著作难以被推手推广,常常乏人问津,获利有限甚或要赔本。笔者并非学界人士,只是业余民科,但深感自己负有推荐义务,以使这些真挚的作者不那么孤冷,可以多得几位读者与之神交。

Read More

2018-07-31
政治经济学视角下的中早期苏联科社实践(四)—— 新经济政策争论到斯大林模式与总结

以下只是粗陋的第一版草稿,可直接移步 Github 下载最终成书 PDF,获得更好观感。

新经济政策时期的争论

苏联新经济政策的实行历经了列宁和斯大林两位统治者,苏联必须大力发展大机器工业是党内绝大多数共识。但围绕如何调节工农之间的强烈矛盾与撕裂,对农业部门的经济支持力度多少,苏联发生多次激烈争论,形成派别之争。其中有政策的不同也有连续,对于苏联的研究常常注重不同之处,而轻视了列宁与斯大林政策的连续性。了解这段时期内苏联政府的争论情况,有助于我们理解斯大林中后期政策,也有助于对整个苏联社会主义产生深刻认识。以下只介绍主要流派的主要思想以及以斯大林为首的联共(布)中央的应对:

Read More

2018-07-31
政治经济学视角下的中早期苏联科社实践(三)—— 十月革命前夕到新经济政策

以下只是粗陋的第一版草稿,可直接移步 Github 下载最终成书 PDF,获得更好观感。

二十世纪初至十月革命的俄国

(十九世纪末、二十世纪初)绝大多数东方国家不具有被马克思称为资本主义曙光的种种有利条件(即地理环境、金矿、奴隶贸易、殖民地等),相反却普遍受到先进资本主义国家的压迫、排挤和剥削(它们是作为被剥夺者而纳入现代资本主义经济体系的)这一客观原因外,更主要的则在于东方社会自身的历史条件。

Read More

2018-07-31
政治经济学视角下的中早期苏联科社实践(二)—— 杜冈 - 巴拉诺夫斯基

以下只是粗陋的第一版草稿,可直接移步 https://github.com/sd44/dingjia 下载最终成书 PDF,获得更好观感。

杜冈 - 巴拉诺夫斯基对苏俄的影响

杜冈 - 巴拉诺夫斯基被霍华德和 King 高度称赞,他早期是一个” 合法马克思主义者”,后来是一个寻求” 社会合作” 的资产阶级自由派,因而被列宁批判为” 自由派教授”。他的这种政治倾向转变、列宁对其下的评语以及俄语受众的局限等,使其长期以来被中国所忽视。

Read More

2018-07-31
政治经济学视角下的中早期苏联科社实践(一)—— 序言和马克思

以下只是粗陋的第一版草稿,可直接移步 https://github.com/sd44/dingjia 下载最终成书 PDF,获得更好观感。

序言

苏联问题,无论在东西方还是在苏联、苏联解体后各个国家,都是一个敏感话题。对苏联问题的学术研究常常带有很多国家、政治、经济集团的功利目的,在不同时期和环境为不同利益背书;也常被部份学者的个人主观倾向所利用,从而成为” 反学术” 的学术。在民间个人,则常常被自身迷梦所影响,过于简单片面的赞美或者批判。

Read More

2018-07-05
吉林大学经济学院、金融学院院长李晓教授 “解决办法”

原文: 国家命运与个人命运 | 吉林大学经济学院、金融学院院长李晓教授在 2018 年毕业典礼上的讲话

https://mp.weixin.qq.com/s/w4gEgxS177t90V-tGAHuJA

在知乎看到一个如何评价李晓教授这段讲话的问题:

https://www.zhihu.com/question/283465673/answer/434552275

我的回答:

细思极恐。

这种 “恐”,不是因为李晓教授说出了 民族国家与全球化矛盾,美元占主导地位、依托政治、军事、经济国力的金融资本在全球化中的强力地位,这些内容在实践中有价值,但在社会学、政治学理论中应是老调重弹。

“恐” 的是,大量答主看不出言外之意。有人说李教授认识水平超越了国家,还有人说 “没有提出解决办法”,这些知乎答主的回答反映出我们国家人文社科方面的极大落后。

为什么我说这些答主回答是错误的,因为:

最 “恐” 的就是李晓教授的言外之意,也是几个回答中所说的 “解决办法”。李晓教授的解决办法集中在 “我们的主动权” 这一个段落和其后一段。无论是国家还是李晓均没有直言解决办法,也没有办法直言,只能隐晦提出。什么是 “熊彼特式的创新”,什么是 “谁的制度安排更有利于经济增长和发展……”。

“熊彼特式的创新” 即熊彼特所说 “创造性破坏”,一些经济学人用其为经济危机辩解,但是从不会将其全面引用。引用《马克思主义经济学史 1929-1990》一书第十八章内容。

熊彼特强调,在“创造性破坏” ( 他认为这是在马克思那里发现的 ) 的经典辩解中,认为“这个制度是残酷的、不公正的和紊乱的,但是,它的确提供了商品,然后毁掉这一切,这些商品是...... [ 人民 ] ......需要的”。

李教授的观点和 GJ 的政策是一致的,简而言之是 “新古典自由主义”,所以李教授说支持大大。两者同路,但金融系统所要求的 “自由” 远远大于国家所能给予的 “自由”,即使国家的自由政策已经是李教授所说 “熊彼特式的创新”。这个金融学院院长李教授说法和其他金融集团所要求的并无二致。

李教授说提的解决办法,便是新古典自由主义。

Read More

2018-07-03
《列斐伏尔空间批判理论研究》读后感

缘起

本书是作者张笑夷在黑龙江大学求学时所作博士论文转为专著出版,衣俊卿进行了指导。不知为何,原博士论文和纸质版本均难以购得,我只好入手 Kindle 版电子书。

Read More

2018-06-24
《马克思主义经济学史 1929-1990》的水货读后感

本书的不足

  1. 书中对于一些理论概念、代数公式介绍不足。鉴于本书是历史学性质,并且可能有篇幅限制,需要参考 “参考文献” 才能更好理解本书,这方面我力有不足,只好对本书浅尝辄止。
  2. 90 年代至今 30 多年来出现了一系列对世界各国产生重要影响的问题,由于本书原版出版时间为 1992 年,自然会受到历史局限,对一些理论难以触及和深入。我个人认为,本书理论历史其实只论述到上世纪七十年代末。本书大概未对以下几个当代理论部份进行较好阐述:
Read More

2018-05-30
《马克思主义经济学史 1883-1929》的水货读后感(二)

正如作者 M・C・霍华德和 J・E・金在导言中所说,“马克思主义政治经济学在这些年的发展,同实践性的政治问题不可分割地交织在一起。”。我觉得书中有句话非常经典,透露出现实社会的吊诡和无常,“人类一思考,上帝就发笑”:“主要关注推动资本主义发展的俄国人,以破坏资本主义的发展而告终;期待资本主义崩溃的德国马克思主义者,却开始与资产阶级合作并维护资本主义。

Read More

2018-05-25
《马克思主义经济学史 卷 1:1883-1929》的水货读后感(一)}

引子

我们应当学习的是马克思主义史,而不是局限于马克思个人的马克思学。 正如马克思的著作有大部分内容建立在前人基础上,然后发展并融入自己的真知灼见,马克思主义经济学史中的诸多人物也是建立在前人理论基础之上,并发展融入。无法想象一个前不见古人、后不见来者的超天才横空出世,提出诸多独创深刻见解。

只有在这种理论联系实际的历史考察中,才有助于我们真正理解和加深理解马克思,并对其进行继承、发扬和批判、扬弃,这也是马克思历史辩证法的核心所在。在这一学习过程中,我们也会对历史,国家 —— 特别是中苏等社会主义国家历史有着更为清晰的理解。从而明得失,知兴替。

Read More

2018-04-21
草稿之一 —— 维基解密、阿桑奇与西方政治

以下只是粗陋的第一版草稿,可直接移步 https://github.com/sd44/dingjia 下载最终成书 PDF,获得更好观感。

维基解密简述

维基解密官网的域名 wikileaks.org 注册于 2006 年 10 月 4 日,朱利安・保罗・阿桑奇一般被视为其创始人。自维基解密成立之初,就着力于解密大批文档。创始之初采用公共编辑方式,任何人都可以发布、修改页面。后来改为只接受具有政治、外交、历史或伦理意义的文件,所提交文件需要匿名维基解密工作人员的审阅。

维基解密在十年多的时间里,多次对世界造成巨大影响。如公布肯尼亚原总统腐败案;阿尔及利亚政府与石油公司合作,破坏另一家石油公司的设备造成石油大面积泄露;伊拉克战争美军直升机射杀平民,包括两名路透社记者和儿童;阿富汗战争的大量文件及关塔那摩虐俘;美国、俄罗斯的可以侵入几乎涵盖所有系统的网络黑客工具等。

Read More