• django创建项目2 jojo


    11、在 ’ 应用 ’ 的models.py中定义模型

    你可以使用模型类来创建、更新或删除记录,并运行查询获取所有记录或特定的记录子集

    class Genre(models.Model):
    name=models.CharField(max_length=200,help_text='Enter A book genre(e.g. Science Fiction, French Poetry etc.)')
    class Meta: #通过声明 class Meta 声明模型级别的元数据,排序
    ordering=["-name"]
    def get_absolute_url(self): #返回一个URL,用于在网站上显示单个模型记录. 将自动在“管理站点”中添加“在站点中查看“按钮在模型的记录编辑栏
    return reverse('model-detail-view', args=[str(self.id)])
    def __str__(self): #将返回模型中的标题或名称字段
    return self.name

    字段参数 在大多数字段,可以使用以下常用参数

    • help_text: 提供HTML表单文本提示 (e.g. i在管理站点中)
    • verbose_name: 字段标签中可读性名称,如果没有指定性,Django将从字段名称推断默认的详细名称
    • default: 该字段的默认值。这可以是值或可调用对象,在这种情况下,每次创建新纪录时都将调用该对象。
    • null: 如果是True,Django将 NULL 在数据库中存储适合的字段(一个CharField将代替一个空字符串)的空值。默认是False
    • blank: 如果True,表单中的字段被允许为空白。默认是False,这意味着表单的字段不可以未空。一般设置为NULL=True,因为如果要允许空值,你还希望数据库能够适当地表示它们。
    • choices: 这是一组字段选项。如果提供这一项,默认对应的表单部件是下拉选择框,而不是标准文本字段。
    • primary_key: 如果是True,将当前字段设置为模型的主键(主键是指定唯一标识所有不同表记录的特殊数据库列)。如果没有指定字段作为主键,则Django将自动为此添加一个字段。

    常用字段类型

    • CharField 是用来定义短到中等长度的字段字符串。你必须指定max_length要存储的数据。
    • TextField 用于大型任意长度的字符串。你可以max_length为该字段指定一个最大值,但仅当该字段以表单显示时才会使用(不会在数据库级别强制执行)
    • IntegerField 是一个用于存储整数(整数)值的字段,用于在表单中验证输入的值为整数。
    • DateField 和 DateTimeField 用于存储/表示日期和日期/时间信息(分别是Python的datetime.date和datetime.datetime对象。这些字段具有单独参数auto_now=Ture (在每次保存模型时将该字段设置为当前日期),auto_now_add(仅设置模型首次创建时的日期)和default(设置默认日期,可以被用户覆盖)
    • EmailField 用于存储和验证电子邮件地址
    • FileField 和 ImageField 分别用于上传文件和图像(ImageField 只需添加上传的文件是图像的附加验证)。这些参数用于定义上传文件的存储方式和位置
    • AutoField 是一种 IntegerField 自动递增的特殊类型。如果你没有明确指定一个主键,则此类型的主键将自动添加到模型中。
    • ForeignKey 用于指定与另一个数据库模型的一对多关系(例如,汽车有一个制造商,但制造商可以制作许多汽车)
    • ManyToManyField 用于指定多对多 关系(例如,一本书可以有几种类别,每种类别可以包含几本书)。

    12、重新运行数据库迁移

    python manage.py makemigrations
    python manage.py migrate

    模型类表示数据库表,该类的实例表示数据库表中的特定记录。

    要创建对象,请使用模型类的关键字参数对其进行实例化,然后调用save()以将其保存到数据库中。

    可进入shell对数据库进行增删改查(从项目所在目录进入
    python manage.py shell
    from myapp.models import Genre
    b=Genre(name='tomas',tagline='Beatles') # 增加记录
    b.save() #保存后数据库的myapp_genre表里就增加了一条数据

    b.name='jiaoxiaohui' #修改记录
    b.save()

    t=Genre.objects.get(id=1) #查询记录
    t #显示结果

    具体请在以下地址学习
    https://docs.djangoproject.com/en/2.1/topics/db/queries/
     

    13、注册模型,在应用程序的目录中打开 admin.py ,导入models,models.py里写了几个类就导入几个类。例:

    from django.contrib import admin
    from .models import Book,Author
    admin.site.register(Book)
    admin.site.register(Author)

    14、创建一个superuser

    python manage.py createsuperuser

     

     未完待续··········

  • 相关阅读:
    Vue响应式原理
    vue 与 react
    vuex
    受控组件( controlled component )与不受控制的组件( uncontrolled component )区别
    redux学习语录
    Flux
    MVC和MVVM 架构模式/设计思想
    immutable
    JS中一些兼容性问题
    @芥末的糖 ---------- node连接数据库两种方式mysql和moogoDB
  • 原文地址:https://www.cnblogs.com/jiaoxiaohui/p/10184790.html
Copyright © 2020-2023  润新知