django migration详解

用了这么久的migration,是时候总结一下这些命令都干了什么啦~

python manage.py makemigrations

首先,django会检查创建或修改数据库的合法性,如果不合法会给出提示,比如CharField必须设置max_length,新增了没有默认值的非空字段。

第一次执行该操作:会在app下面创建migrations目录,并创建0001_inital.py文件,文件中记录了当前的建表、依赖等信息。

下一次执行该操作:

如果有关于model.py的改动,会在migrations下生成已修改内容为名,类似0002_alter_permission_name_max_length.py的文件,文件中记录了你修改字段等信息

如果没有改动则提示:No changes detected

这些改动在此时都没有迁移到数据库!!!

python manage.py sqlmigrate appname 0001

可以查看下migrations 0001会对应于什么样子的SQL命令

python manage.py showmigrations

可以查看当前项目所有的app及对应的已经生效的migration文件,[x]表示migrte通过,[]表示未通过 

admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
 [ ] 0003_logentry_add_action_flag_choices
sessions
 [X] 0001_initial
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name

[]migration文件未通过的,可以通过删除migrations下对应名称文件撤销这次更新

python manage.py migrate

将改动迁移到数据库,完成建表、修改字段等操作,操作成功后会在数据库django_migrations表中添加一条数据,表示migration文件已迁移

 

总而言之,makemigration生成ddl(数据库模式定义语言),migrate执行ddl

 

参考:

https://blog.csdn.net/cnenjinglang/article/details/80517681 - Django框架下的model管理makemigration & migrate

https://blog.csdn.net/liuweiyuxiang/article/details/71150965 - 理解Django的makemigrations和migrate

...

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django 是一个基于 Python 的 Web 开发框架,它的核心思想是 DRY(Don’t Repeat Yourself),即避免重复的代码和逻辑。下面是 Django 的原理详解: MVC 模式 Django 遵循 MVC(Model-View-Controller)模式,即将应用程序分为三个部分: - 模型(Model):负责处理数据存储和检索。 - 视图(View):负责数据呈现和用户交互。 - 控制器(Controller):负责处理用户请求并返回响应。 在 Django 中,控制器和视图被合并成了一个中间件(Middleware),称为视图(View)。这样做的好处是可以将控制器的逻辑和视图的逻辑分离,使代码更加清晰。 ORM 框架 Django 使用 ORM(Object-Relational Mapping)框架来处理数据库操作。ORM 框架允许开发者使用面向对象的方式来操作数据库,而不需要直接写 SQL 语句。Django 的 ORM 框架支持多种数据库,包括 MySQL、PostgreSQL、SQLite 等。 路由系统 Django 的路由系统可以将 URL 映射到相应的视图函数上。路由系统是一个 URLconf(URL 配置)模块,它定义了 URL 和视图之间的映射关系。Django 的路由系统支持正则表达式和命名参数,可以方便地处理不同的 URL。 模板系统 Django 的模板系统使用 HTML、CSS 和 JavaScript 来构建用户界面。模板系统允许开发者将视图和模板分离,使代码更加清晰。模板系统支持模板继承、模板标签、模板过滤器等功能,可以方便地构建复杂的用户界面。 缓存系统 Django 的缓存系统可以缓存视图的输出结果,减少服务器负载和响应时间。缓存系统支持多种缓存后端,包括内存缓存、文件缓存、Redis 缓存等。 安全性 Django 的安全性得到了广泛的认可。Django 的安全功能包括 CSRF(Cross Site Request Forgery)保护、XSS(Cross Site Scripting)保护、SQL 注入保护等。 总结 Django 的核心思想是 DRY,它遵循 MVC 模式,使用 ORM 框架来处理数据库操作,具有强大的路由系统、模板系统、缓存系统和安全性。Django 的原理非常清晰,使开发者可以快速构建高质量的 Web 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值