美文网首页
【django】【基础】models

【django】【基础】models

作者: JerichoPH | 来源:发表于2018-04-27 21:48 被阅读70次

    models

    创建模型:

    • 打开supporter/models.py
    • 添加模型类:Article
    class Article(models.Model):
        title = models.CharField(max_length=32, default='title')
        content = models.CharField(max_length=255, null=True)
    

    创建数据库迁移:

    • 执行命令:python manage.py makemigrations supporter
    • 看到如下结果:
    Migrations for 'supporter':
      supporter\migrations\0001_initial.py:
        - Create model Article
    
    
    • 执行命令:python manage.py migrate
    • 看到如下结果:
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions, supporter
    Running migrations:
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying sessions.0001_initial... OK
      Applying supporter.0001_initial... OK
    
    

    ==完成迁移==

    完成迁移后续:

    • 完成迁移后,会在对应的应用目录下migrations文件夹下创建迁移执行文件,例如:supporter/migrations/0001_initial.py
    • 打开文件:
    # -*- coding: utf-8 -*-
    # Generated by Django 1.10.2 on 2018-04-27 13:22
    from __future__ import unicode_literals
    
    from django.db import migrations, models
    
    
    class Migration(migrations.Migration):
    
        initial = True
    
        dependencies = [
        ]
    
        operations = [
            migrations.CreateModel(
                name='Article',
                fields=[
                    ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                    ('title', models.CharField(default='title', max_length=32)),
                    ('content', models.CharField(max_length=255, null=True)),
                ],
            ),
        ]
    
    
    • 执行命令:python manage.py sqlmigrate supporter 0001可以查看具体执行的SQL语句
    • 结果如下:
    BEGIN;
    --
    -- Create model Article
    --
    CREATE TABLE "supporter_article" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(32) NOT NULL, "content" varchar(255) NULL);
    COMMIT;
    
    • 数据库文件存放地址:项目根目录/db.sqllite3,没有用户名和密码

    读取数据

    • views中,引入模型:from . import models
    • 根据id读取:article = models.Article.objects.get(pk=1)
    • 传递试图:return render(request=request, template_name='index.html', context={'data': article})
    • 试图渲染:
    <h1>title:" {{ data.title }} "</h1>
    <h2>content:" {{ data.content }} "</h2>
    

    相关文章

      网友评论

          本文标题:【django】【基础】models

          本文链接:https://www.haomeiwen.com/subject/xwoilftx.html