zoukankan      html  css  js  c++  java
  • 搭建自己的博客(二):创建表,创建超级用户

    接上一篇搭建完成之后,开始构建一些表了。

    一篇博客首先需要一个表来存放博客,然后一篇博客应该需要不同的标签来分类,还应该有作者。下面动手创建表。作者表暂时准备使用django自带的user表

    1、创建博客标签表和博客表。

    打开blog app下的models模型文件,创建表如下:

    from django.db import models
    from django.contrib.auth.models import User # 导入User表
    
    # Create your models here.
    
    # 博客分类表
    class BlogType(models.Model):
        type_name = models.CharField(max_length=15)  # 博客分类名称
    
    
    # 博客表
    class Blog(models.Model):
        title = models.CharField(max_length=50)  # 博客标题
        blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING)  # 博客分类
        content = models.TextField()  # 博客内容
        author = models.ForeignKey(User, on_delete=models.DO_NOTHING)  # 博客作者
        created_time = models.DateTimeField(auto_now_add=True)  # 博客创建时间
        last_updated_time = models.DateTimeField(auto_now=True)  # 博客更新事件

     2、创建好表后记得数据库迁移

    python manage.py makemigrations # 数据库迁移
    python manage.py migrate # 数据库同步

    3、创建超级用户

    python manage.py createsuperuser  # 创建超级用户

    4、在blog中的admin.py文件中指定在后台需要显示的字段

    from django.contrib import admin
    from .models import BlogType, Blog
    
    # Register your models here.
    
    @admin.register(BlogType)
    class BlogTypeAdmin(admin.ModelAdmin):
        list_display = ('id', 'type_name')  # 需要显示的列表
    
    
    @admin.register(Blog)
    class BlogAdmin(admin.ModelAdmin):
        list_display = ('title', 'blog_type', 'author', 'created_time', 'last_updated_time')
    
    # 上面的装饰器和这句相同
    # admin.site.register(Blog,BlogAdmin)

    5、添加完后运行服务

    在浏览器中输入http://127.0.0.1:8000/admin,进入django的后台登录界面

    输入刚才创建好的超级用户的账号密码,进入。

    图中的blog就是我们创建的blog  app,下面是我们创建的blogs,和blog type表。

    6、在后台创建 一个blog type 和blog

    如上图,上面显示的标题就是我们之前在admin.py文件中设置的要显示的字段。

    从上图中我们发现blog type这一栏是一个对象,我们不知道他是啥,修改models.py文件,如下:

    from django.db import models
    from django.contrib.auth.models import User
    
    
    # Create your models here.
    
    # 博客分类
    class BlogType(models.Model):
        type_name = models.CharField(max_length=15)  # 博客分类名称
    
        def __str__(self):  # 显示标签名
            return self.type_name
    
    
    # 博客
    class Blog(models.Model):
        title = models.CharField(max_length=50)  # 博客标题
        blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING)  # 博客分类
        content = models.TextField()  # 博客内容
        author = models.ForeignKey(User, on_delete=models.DO_NOTHING)  # 博客作者
        created_time = models.DateTimeField(auto_now_add=True)  # 博客创建时间
        last_updated_time = models.DateTimeField(auto_now=True)  # 博客更新事件
    
        def __str__(self):  # 显示标题名
            return "<Blog:{}>".format(self.title)

     刷新浏览器:这次blog type字段已经变得能看懂了。

    这次就到这里,先熟悉一下。

  • 相关阅读:
    正则表达式匹配负数和数字
    下拉框select chosen被遮盖
    获取JavaScript对象的方法
    管理机--Jumpserver由docker搭建
    腾讯云--腾讯云sdk-实现脚本修改腾讯云负载均衡权重
    Linux系统中使用confluence构建企业wiki
    腾讯云--对象存储cos绑定自定义域名
    python(一)python的操作符
    pytest(五)用例传fixture参数
    pytest(四)firture自定义用例预置条件
  • 原文地址:https://www.cnblogs.com/felixwang2/p/9904391.html
Copyright © 2011-2022 走看看