基于Django开发一个BBS案例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、数据库表设计(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,如需转载请自行联系原作者






相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
SQL 数据库 索引
Django MTV - 模型层 - (专题)知识要点与实战案例
Django MTV - 模型层 - (专题)知识要点与实战案例
33 0
|
3天前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的社区养老管理系统
基于python+django+vue.js开发的社区养老管理系统
126 1
|
3天前
|
缓存 数据挖掘 数据库
104-Django开发在线美食购物网站
美味小厨在线购物网站是基于Python和Django构建的电商平台,提供商品展示、搜索过滤、问题反馈、购物功能、商品详情查看、产品编辑添加、多用户及站点管理、订单管理等服务。采用Django框架实现高效、稳定且可扩展的系统,前后端分离以提升性能,支持数据库优化和缓存技术,注重用户数据安全。未来计划优化用户体验,拓展更多功能,并加强数据分析。
10 1
|
23小时前
|
前端开发 关系型数据库 MySQL
109-Django开发考试与问卷系统
该项目描述了用户、测试和权限三个核心模块的详细需求。用户模块包括注册(需验证信息并唯一性检查,密码安全存储,确认邮件)和登录(凭据验证,可选的“记住我”功能,防止暴力破解)。测试模块涉及题目、选项和分数设置,支持创建、编辑及自动评分。权限模块关注用户角色和权限管理,实现访问控制。其他考虑因素涵盖用户界面、数据库选择(如SQLite3和MySQL)、安全性最佳实践以及系统的可维护性和可扩展性。
13 3
|
1天前
|
存储 前端开发 关系型数据库
108-Django开发在线书店
该项目是一个使用Python Django框架开发的在线书店系统,提供用户管理(包括普通用户、管理员和匿名用户)、权限管理、书籍管理、订单管理和额外功能(搜索、购物车、支付和评论)。系统支持安全的HTTPS传输和加密密码存储,保证用户数据安全。通过Django实现了用户购书、管理员后台管理的全面功能,兼顾易用性和可维护性。
10 0
|
2天前
|
前端开发 JavaScript 测试技术
107-Django开发医院管理系统(医生-患者-医院管理员)
该内容描述了一个基于Python和Django的医疗管理系统的开发步骤。主要涵盖以下关键点: 1. 环境搭建:安装Python和Django,创建项目和应用。 2. 数据库模型:设计用户、医生、患者、发票和预约等模型。 3. 用户认证和权限:使用Django内置系统,创建自定义角色和权限。 4. 视图和模板:处理用户请求,渲染HTML页面,包括医生列表、患者注册、管理界面等。 5. 表单处理:创建表单处理用户输入,验证数据并保存到数据库。 6. PDF生成:利用xhtml2pdf库生成治疗发票的PDF。 7. 路由配置:设置URL路由以连接视图。
17 7
107-Django开发医院管理系统(医生-患者-医院管理员)
|
3天前
|
数据库 数据安全/隐私保护 开发者
106-Django开发在线交易网站
该内容是关于使用Django框架开发电子商务网站的步骤摘要:
15 2
|
3天前
|
存储 前端开发 关系型数据库
105-Django开发多商户询盘上级网站-在线聊天交流通讯
该项目旨在构建一个在线询盘交易系统,采用Python的Django框架,支持SQLite3(开发)或MySQL/PostgreSQL(生产)数据库。功能包括用户注册登录、产品上传(带审核)、搜索过滤、即时通讯、超级用户管理端、数据分析和响应式界面。还将考虑使用WebSocket、Redis缓存、Docker部署和推荐算法。数据库设计涉及用户、产品、订单和聊天记录表。开发流程涵盖需求分析、技术选型、数据库设计、编码、测试和部署,同时关注安全性、性能、可维护性和兼容性。
12 2
|
3天前
|
BI Python
103-Django开发投票选举系统
这是一个基于 Python 3.11 和 Django 的全功能投票选举系统,提供用户认证、首页展示、投票功能、投票内容管理、数据统计与展示、用户管理和权限分配。系统支持第三方登录、搜索过滤、投票详情查看、选项选择及统计,并具有良好的扩展性和第三方系统集成能力。适用于各种选举场景,如学校选举、公司投票或在线调查。
8 0
|
3天前
|
安全 Python
102-Django开发学校教务管理系统源码+ER图
**Django学校教务管理系统**是使用Python的Django框架开发的,专注于学生和教师的互动。系统功能包括班级管理(教师添加和管理学生,学生查看信息)、分数管理(教师打分和更新,学生查看详情)、作业管理(上传、提交和批改)、师生通讯、发布公告以及用户配置。系统支持管理员、教师和学生的不同角色和权限,特点是互动性强、操作便捷且安全性高。通过这个系统,教学过程变得更加高效,有助于提升教学质量和学习效果。
27 4