django-allauth最佳实践咨询:部署位置、虚拟环境及表名修改
1. django-allauth 的存放位置
不需要把它放到项目内的应用里,默认装在项目外的虚拟环境是标准做法。
如果需要自定义功能,优先用官方提供的扩展方式:比如自定义模板、表单,或者通过信号监听事件来扩展逻辑,完全没必要修改 allauth 的核心源码。要是真的必须修改核心代码(比如官方没提供扩展点),可以 fork 它的仓库到自己的代码库,然后从自己的仓库安装,而不是直接复制到项目内——直接复制到项目会导致后续更新困难,维护成本飙升。
2. 虚拟环境的存放位置
放在项目文件夹外完全合理,这也是很多开发者的常用做法。
这么做的好处是能让项目目录更整洁,避免把虚拟环境里的大量依赖文件不小心提交到版本控制系统(比如 Git)。当然你也可以把虚拟环境放在项目内,但一定要记得在 .gitignore 里排除它,避免冗余提交。两种方式没有绝对的优劣,只要你能清晰管理虚拟环境和项目的对应关系,怎么放都行。
3. 修改 django-allauth 的数据库表名及默认命名的意义
可以修改,但除非有特殊需求(比如公司统一的数据库命名规范),否则完全没必要。
修改的方式是自定义模型:继承 allauth 对应的模型,在模型类里通过 db_table 指定新表名,然后在 Django 的 settings 里配置使用你自定义的模型(比如 ACCOUNT_USER_MODEL = 'your_app.CustomUser')。但 Django 默认的「应用名_模型名」命名规则已经很清晰,allauth 的表名比如 account_email、socialaccount_socialuser 也能直观体现用途,强行修改只会增加维护成本,对项目没有实际收益。
内容的提问来源于stack exchange,提问作者Steve10297

