报障系统之填充基本数据

通过Django admin填充基本数据:

#admin.py
from django.contrib import admin
from app01 import models

admin.site.register(models.Article)
admin.site.register(models.Article2Tag)
admin.site.register(models.ArticleDetail)
admin.site.register(models.Blog)
admin.site.register(models.Category)
admin.site.register(models.Comment)
admin.site.register(models.Tag)
admin.site.register(models.UpDown)
admin.site.register(models.UserFans)
admin.site.register(models.UserInfo)

#创建用户:
python manage.py createsuperuser

#访问:
127.0.0.1:8000/admin/

#models.py

from django.db import models

class UserInfo(models.Model):
    """
    用户表
    """
    nid = models.BigAutoField(primary_key=True)
    username = models.CharField(verbose_name=‘用户名‘, max_length=32, unique=True)
    password = models.CharField(verbose_name=‘密码‘, max_length=64)
    nickname = models.CharField(verbose_name=‘昵称‘, max_length=32)
    email = models.EmailField(verbose_name=‘邮箱‘, unique=True)
    avatar = models.ImageField(verbose_name=‘头像‘,upload_to=‘static/images‘)

    create_time = models.DateTimeField(verbose_name=‘创建时间‘, auto_now_add=True)

    fans = models.ManyToManyField(verbose_name=‘粉丝们‘,
                                  to=‘UserInfo‘,
                                  through=‘UserFans‘,
                                  related_name=‘f‘,
                                  through_fields=(‘user‘, ‘follower‘))

    def __str__(self):
        return self.nickname
class Blog(models.Model):
    """
    博客信息
    """
    nid = models.BigAutoField(primary_key=True)
    title = models.CharField(verbose_name=‘个人博客标题‘, max_length=64)
    site = models.CharField(verbose_name=‘个人博客后缀‘, max_length=32, unique=True)
    theme = models.CharField(verbose_name=‘博客主题‘, max_length=32)
    user = models.OneToOneField(to=‘UserInfo‘, to_field=‘nid‘)

    def __str__(self):
        return self.title

class UserFans(models.Model):
    """
    互粉关系表
    """
    user = models.ForeignKey(verbose_name=‘博主‘, to=‘UserInfo‘, to_field=‘nid‘, related_name=‘users‘)
    follower = models.ForeignKey(verbose_name=‘粉丝‘, to=‘UserInfo‘, to_field=‘nid‘, related_name=‘followers‘)

    class Meta:
        unique_together = [
            (‘user‘, ‘follower‘),
        ]

class Category(models.Model):
    """
    博主个人文章分类表
    """
    nid = models.AutoField(primary_key=True)
    title = models.CharField(verbose_name=‘分类标题‘, max_length=32)

    blog = models.ForeignKey(verbose_name=‘所属博客‘, to=‘Blog‘, to_field=‘nid‘)

    def __str__(self):
        return "%s-%s" %(self.blog.title,self.title)

class ArticleDetail(models.Model):
    """
    文章详细表
    """
    content = models.TextField(verbose_name=‘文章内容‘, )

    article = models.OneToOneField(verbose_name=‘所属文章‘, to=‘Article‘, to_field=‘nid‘)

class UpDown(models.Model):
    """
    文章顶或踩
    """
    article = models.ForeignKey(verbose_name=‘文章‘, to=‘Article‘, to_field=‘nid‘)
    user = models.ForeignKey(verbose_name=‘赞或踩用户‘, to=‘UserInfo‘, to_field=‘nid‘)
    up = models.BooleanField(verbose_name=‘是否赞‘)

    class Meta:
        unique_together = [
            (‘article‘, ‘user‘),
        ]

class Comment(models.Model):
    """
    评论表
    """
    nid = models.BigAutoField(primary_key=True)
    content = models.CharField(verbose_name=‘评论内容‘, max_length=255)
    create_time = models.DateTimeField(verbose_name=‘创建时间‘, auto_now_add=True)

    reply = models.ForeignKey(verbose_name=‘回复评论‘, to=‘self‘, related_name=‘back‘, null=True)
    article = models.ForeignKey(verbose_name=‘评论文章‘, to=‘Article‘, to_field=‘nid‘)
    user = models.ForeignKey(verbose_name=‘评论者‘, to=‘UserInfo‘, to_field=‘nid‘)

class Tag(models.Model):
    nid = models.AutoField(primary_key=True)
    title = models.CharField(verbose_name=‘标签名称‘, max_length=32)
    blog = models.ForeignKey(verbose_name=‘所属博客‘, to=‘Blog‘, to_field=‘nid‘)

    def __str__(self):
        return "%s-%s" %(self.blog.title,self.title)

class Article(models.Model):
    nid = models.BigAutoField(primary_key=True)
    title = models.CharField(verbose_name=‘文章标题‘, max_length=128)
    summary = models.CharField(verbose_name=‘文章简介‘, max_length=255)
    read_count = models.IntegerField(default=0)
    comment_count = models.IntegerField(default=0)
    up_count = models.IntegerField(default=0)
    down_count = models.IntegerField(default=0)
    create_time = models.DateTimeField(verbose_name=‘创建时间‘, auto_now_add=True)

    blog = models.ForeignKey(verbose_name=‘所属博客‘, to=‘Blog‘, to_field=‘nid‘)
    category = models.ForeignKey(verbose_name=‘文章类型‘, to=‘Category‘, to_field=‘nid‘, null=True)

    type_choices = [
        (1, "Python"),
        (2, "Linux"),
        (3, "OpenStack"),
        (4, "GoLang"),
    ]
    # 网站分类

    article_type_id = models.IntegerField(choices=type_choices, default=None)

    tags = models.ManyToManyField(
        to="Tag",
        through=‘Article2Tag‘,
        through_fields=(‘article‘, ‘tag‘),
    )

    def __str__(self):
        return "%s-%s" %(self.blog.title,self.title)

class Article2Tag(models.Model):
    article = models.ForeignKey(verbose_name=‘文章‘, to="Article", to_field=‘nid‘)
    tag = models.ForeignKey(verbose_name=‘标签‘, to="Tag", to_field=‘nid‘)

    class Meta:
        unique_together = [
            (‘article‘, ‘tag‘),
        ]

报障系统之个人博客主页:

时间: 2024-10-12 10:34:16

报障系统之填充基本数据的相关文章

python 报障系统(完)

python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权访问) { '/index.html':[GET,EDIT], '/order.html':[GET,EDIT], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html':[GET,EDIT...], '/xxx.html'

报障系统之博客主页及后台管理

个人博客: url函数(路由系统): """baozhang URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app i

西游之路——python全栈——报障系统之后台管理

一.后台管理页面布局 1.用户: - 普通用户 知识库+提交报账单+个人信息 - 管理员 知识库+提交报账单+个人信息+处理报账单 - 超级管理员 知识库+提交报账单+个人信息+处理报账单+报障统计信息 权限管理2.菜单: - 知识库管理 文章 标签 分类 - 报障管理 个人报障 报障处理 报障统计信息 - 权限管理 菜单 权限 角色 二.公共模板及路由分发 1.后台菜单栏.导航栏 1 <!DOCTYPE html> 2 <html lang="en"> 3 &

报障系统之多级评论前戏

前戏: 列表添加: v1 = [1,2,3,4] v1.append(123) print(v1) data = [ [11,22,33], [44,55,66] ] data[0].append(data[1]) print(data) # data = [ # [11,22,33, [44,55,66]], # [44,55,66] # ] data[1].append(77) print(data) # data = [ # [11,22,33, [44,55,66,77]], # [44

报障系统之多级评论

一.列表前戏: #例1 v1 = [1,2,3,4] v1.append(123) print(v1)#[1, 2, 3, 4, 123] #例2 v1 = {'k1':'v1'} v1['k2'] = 'v2' print(v1)#{'k1': 'v1', 'k2': 'v2'} #例3 data = [ [11,22,33], [44,55,66] ] data1=data[0] data2 = data1.append(data[1]) print(data1)#[11, 22, 33,

嵌入式linux驱动开发之给你的linux系统添加温度传感器模块

忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而且剩余很多,可以用软件资源来代替硬件资源,比如说可以用视频编解码软件取代硬件来工作.但有很多模块需要实时的采集数据这都是软件永远无法代替的,而且随着互联网的进一步发展,智能化也是一个必然的趋势,因此大量的传感器和控制芯片将被应用到生产生活中,所以个人觉得驱动开发还是个不错的方向.同时,作为学习者,再

SqlServer系统表与一些属性

系统表的作用:用户自定义的表对自己填充的数据进行操作.而对sql server来说,用户自定义的表就相当于为系统表填充的数据,故用系统表来操作用户数据库,数据表,存储过程等数据. 系统表操作用户自定义表,用户自定义表操作外来的数据. 1,sysobjects表:万物皆对象,这是一个系统对象表.表,存储过程,触发器都是对象,都存在此表内.此表用crdate 等保存 对象的创建日期.查找用户表: select *?? from sysobjects where xtype = ‘U’ AND sta

Centos系统下载和安装

下载合适的镜像:(我们这以下载Centos7.5版本为例)首先我们先访问Centos的官方网站,在国内访问速度可能很慢或者直接访问不上.我这个地方使用×××(俗语:×××),CentOS的官方网址:https://centos.org/进入到网站之后我们点击这个: 然后点击:(GET CENTOS获取镜像)第一栏大概有这三个选项: 1,DVD ISO:普通光盘安装版镜像,可使用此镜像制作启动,包含大量的常用软件,没特殊要求选择这个即可: 2,Everything ISO:包含了"DVD ISO&

liunx系统部署

Linux系统安装与基本配置 =======================================内容提要:获取Linux 常用发行版的方式DELL/HP/IBM 服务器介绍DELL/HP/IBM Blade 服务器介绍非云环境安装方式cdrom/usb/pxe企业版 RHEL6/7/CentOS 安装部署非云环境Linux 文本安装过程介绍非云环境生产环境中安装注意事项云环境系统部署基本介绍 CentOS 与 RHEL 的区别 RHEL 在发行的时候,有两种方式.一种是二进制的发行方