基于Django开发一个BBS案例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

一、数据库表设计(models.py文件)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from __future__ import unicode_literals

from django.db import models

#导入django用户认证表

from django.contrib.auth.models import  User

# Create your models here.

class Article(models.Model):#帖子表

    title = models.CharField(u"文章标题",max_length=255,unique=True)

    categroy = models.ForeignKey("Category",verbose_name=u"板块")

    head_img = models.ImageField(upload_to="uploads")#每个帖子都要有一张图片

    content = models.TextField(u"文章内容")#帖子内容

    author = models.ForeignKey("UserProfile")#一篇文章只能有一个作者

    publish_date = models.DateTimeField(auto_now=True)#帖子发布日期

    hidden =models.BigAutoField(default=True)#帖子是否显示

    priority = models.IntegerField(u"优先级",default=1000)#帖子优先级

    def __unicode__(self):#设置默认返回值

        return "<%s,author:%s>" %(self.title,self.author)

class Comment(models.Model):#评论表

    article = models.ForeignKey("Article")#一条评论只能针对一篇文章

    user = models.ForeignKey("UserProfile")#由哪个用户发出评论

    #parent_comment = models.ForeignKey('Comment',)#父级评论

    parent_comment = models.ForeignKey("self", related_name = 'parcomment',blank=True,null=True)#父级评论

    date = models.DateTimeField(auto_now=True)#评论发布日期

    comment = models.TextField(max_length=1000)#评论内容

    def __unicode__(self):返回默认值

        return "<%s,user:%s>" %(self.comment,self.user)

class ThumbUp(models.Model):#点赞统计

    article = models.ForeignKey('Article')#点赞的文章

    user = models.ForeignKey('UserProfile')#点赞的用户

    date = models.DateTimeField(auto_now=True)#人点赞日期

    def __unicode__(self):#设置默认返回值

        return "<user:%s>" %(self.user)

class Category(models.Model):#板块表

    name = models.CharField(max_length=64,unique=True)#板块名字

    admin = models.ManyToManyField("UserProfile")#板块管理员多对多,多对多就是双向的一对多

    def __unicode__(self):

        return self.name

class UserProfile(models.Model):#用户信息表

    user = models.OneToOneField(User) #继承系统原生的User表

    name = models.CharField(max_length=32)

    groups = models.ManyToManyField("UserGroup") #属于哪个用户组

    def __unicode__(self):

        return self.name

class UserGroup(models.Model):#用户组表

    name = models.CharField(max_length=64,unique=True)#用户组名称

    def __unicode__(self):

        return self.name

二、数据初始化:

settings.py中数据库访问设置

DATABASES = {

    'default':{

        'ENGINE':'django.db.backends.mysql',

        'NAME':'s11bbs',

        'HOST':'127.0.0.1',

        'USER':'root',

        'PASSWORD':'123456',

    }

}

在执行同步之前要先创建数据库s11bbs,然后再执行以下语句

python manage.py migrate

mysql> use s11bbs;

Database changed

mysql> show tables;

+----------------------------+

| Tables_in_s11bbs           |

+----------------------------+

| auth_group                 |

| auth_group_permissions     |

| auth_permission            |

| auth_user                  |

| auth_user_groups           |

| auth_user_user_permissions |

| django_admin_log           |

| django_content_type        |

| django_migrations          |

| django_session             |

+----------------------------+

10 rows in set (0.00 sec)


python manage.py migrations

python manage.py migrate

mysql> show tables;

+----------------------------+

| Tables_in_s11bbs           |

+----------------------------+

| auth_group                 |

| auth_group_permissions     |

| auth_permission            |

| auth_user                  |

| auth_user_groups           |

| auth_user_user_permissions |

| django_admin_log           |

| django_content_type        |

| django_migrations          |

| django_session             |

| web_article                |

| web_category               |

| web_category_admin         |

| web_comment                |

| web_thumbup                |

| web_usergroup              |

| web_userprofile            |

| web_userprofile_groups     |

+----------------------------+

18 rows in set (0.00 sec)

mysql>


三、向admin中注册建立的数据库表

在admin中注册创建的表

from django.contrib import admin

import models

# Register your models here.

admin.site.register(models.Article)

admin.site.register(models.Category)

admin.site.register(models.Comment)

admin.site.register(models.ThumbUp)

admin.site.register(models.UserProfile)

admin.site.register(models.UserGroup)

admin.site.register(models.Article)


创建用户ucode

C:\Users\ryan\PycharmProjects\s11bbs>python manage.py createsuperuser

Username (leave blank to use 'ryan'): ucode

Email address:

Password:

Password (again):

Superuser created successfully.

C:\Users\ryan\PycharmProjects\s11bbs>




      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1868020,如需转载请自行联系原作者






相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
186 1
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
203 62
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
143 2
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
283 0
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
386 45
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
480 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
175 2
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
146 2
|
8月前
|
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
106 2
Django后端架构开发:Celery异步调优,任务队列和调度
Django后端架构开发:Celery异步调优,任务队列和调度
143 1