django

41 阅读2分钟

1.启动

pyhton manage.py runserver 0.0.0.0:8080

2.定义模型

Django 规定,如果要使用模型,必须要创建一个 app。我们使用以下命令创建一个 TestModel 的 app:

django-admin startapp TestModel


PROTECT:阻止删除关联的对象。如果尝试删除目标对象时存在与之有关联的其他对象,将会触发 ProtectedError 异常。

SET_NULL:将关联的外键字段设置为 NULL。当目标对象被删除时,与之关联的外键字段将被设置为 NULL 值。前提是该外键字段允许为空(即设置了 null=True)。

SET_DEFAULT:将关联的外键字段设置为默认值。当目标对象被删除时,与之关联的外键字段将被设置为默认值。前提是该外键字段定义了默认值(即设置了 default 参数)。

SET():将关联的外键字段设置为指定的值。可以是一个具体的值或一个可调用对象(如函数)。当目标对象被删除时,与之关联的外键字段将设置为指定的值。

DO_NOTHING:什么也不做。当目标对象被删除时,与之关联的外键字段不做任何处理,维持原样。

3.数据库操作

3.1数据库添加数据

  • models写完
  • settings里面注册models所在的文件夹
  • 再执行命令,即可完成models生成数据表 image.png
$ python3 manage.py migrate   # 创建表结构

$ python3 manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更

$ python3 manage.py migrate TestModel   # 创建表结构

修改数据可以使用 save() 或 update():`

from TestModel.models import Test
 
# 数据库操作
def testdb(request):
    test1 = Test(name='runoob')#建立对象
    test1.save()
    return HttpResponse("<p>数据添加成功!</p>")

问题

1.forbidden(CSRF cookie not set)

settings.MIDDLEWARE注释掉django.middleware.csrf.CsrfViewMiddleware以关闭csrf验证。

实战学习

class article_photo(models.Model):
      source=models.ForeignKey('article_text',on_delete=models.CASCADE)

在给定的代码中,source 字段是一个 ForeignKey 类型,它定义了 article_photo 模型与 article_text 模型之间的关系。具体来说,source 字段定义了一个外键关系,将 article_photo 模型的实例关联到 article_text 模型的实例。

以下是 models.ForeignKey 的一些重要参数的解释:

'article_text' 是目标模型的名称,表示该字段将关联到 article_text 模型。 on_delete=models.CASCADE 表示当 article_text 模型中的某个实例被删除时,所有指向该实例的 article_photo 实例也将被删除。 因此,img_ins.source 将是一个 article_text 模型实例,它表示与当前 article_photo 实例相关联的 article_text 实例。