基于Django开发一个BBS案例

一、数据库表设计(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>

时间: 2024-10-18 16:20:40

基于Django开发一个BBS案例的相关文章

基于SpringBoot开发一个Restful服务,实现增删改查功能

在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练.不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot. 在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的博客之后,开始写起了我的第一个SpringBoot的项目.在能够对SpringBoot进行一些简单的开发Re

如何基于WKWebView开发一个功能完善的资讯内容页

前言 对于资讯类的APP来说 良好的阅读体验是必不可少的, 那么如何去开发一个功能完善的资讯文章页面就是本文要说的重点.相信本文会对很多在做同类功能开发的道友们有很大的帮助 , 如果某只大佬路过也欢迎指点一二. 废话不多说 开讲(chui)~ 分析 数据 对于图文混排的富文本形式 , 最好最通用的数据格式当属 HTML , 再加上 CSS 和 JS 的配合, 可以随心所欲的展示出成百上千在不同的样式.当然 , 除了 HTML 也不排除有使用其他规则的数据格式来表示.但这里我们还是选择使用 HTM

使用Django开发一个图书管理系统 05---改造界面

BOOKMS是一个公司内部的图书管理系统. 本系列用多次迭代方法,逐步实现一个图书管理系统BOOKMS. 本文主要介绍使用bootstrap美化前台页面和修改admin模块的添加图书模块时使用豆瓣api获取数据. 再前一节里我们一件可以管理model(增删改查).但是界面是在是太简陋,简陋到但凡是个正常人估计都无法接受.项目组里没有专业的前端的话,页面美化是一个痛苦的事,但是有了bootstrap的帮助之后,我们的页面也能像模像样. 一.Bootstrap介绍 Bootstrap是Twitter

使用Django开发一个ToDoList小项目

最近在学Python,今天要做一个小的练手程序--ToDoList,在此记录下过程吧. 工具:Pycharm4.5,Django,python2.7, MySql5.6 平台:Ubuntu15.04 x86_64 一.工具版本查看 1.Django: 2.MySql: 二.建立Pycharm工程 1.Create New Project -> Django->Location->Interpreter-->Application name 建立完成后如上图,工程名为ProjectT

基于Django开发的Kubernetes管理平台

简介Ocean是一个Kubernetes的可视化管理平台,通过直观的页面操作便可完成Kubernetes中资源的创建.部署等操作. 实现功能权限管理:实现RBAC权限管理,根据不同部门和不同角色实现不同权限.集群管理:实现多集群管理,更方便地管理多个集群. 项目组件 Django2.2 Python3.7 BootStrap3.x Jquery1.10 MySQL5.5 未更新完,待补充......最后吐槽一下,快两年没有更新51cto博客了,再次用51cto期望能有改变,但是还是一如既往的难用

利用Django开发BBS论坛(一)

在做任何项目之前,首先需要对此项目做一个分析和功能构造,所以对数据库的创建则为重中之重,因为一些功能都是由数据库进行构建和开发的,所以对数据库的构造是很重要的,那么,关于要开发一个BBS论坛,那么其数据库也好好好地规划一下! 下面则是关于BBS数据库的相关代码! from django.db import models from django.contrib.auth.models import User from django.core.exceptions import Validation

如何基于Python构建一个可扩展的运维自动化平台

嘉宾简介 刘天斯 从事互联网运维工作已13年,目前就职于腾讯-互动娱乐部,负责游戏大数据的运营,曾就职于天涯社区,担任首席架构师/系统管理员. 热衷开源技术的研究,包括系统架构.运维开发.负载均衡.缓存技术.数据库.NOSQL.分布式存储.消息中间件.大数据及云计算.Mesos.Docker.DevOps等领域.擅长大规模集群的运维工作,尤其在自动化运维方面有着非常丰富的经验.同时热衷于互联网前沿技术的研究,活跃在国内社区.业界技术大会,充当一名开源技术的传播与分享者. 导言 受 Reboot

Django开发的简单CMDB系统(仅供参考)

自己基于django开发的一个简单机房机柜CMDB系统,仅供参考.欢迎在下面留言,提出修改意见. 可实现增删改查. 权限未做,很多功能都没做,只做一个最基本的,初学. 前端模板用的inspinia2.5,和jumpserver用的一样的模块,所以看着差不多.模板可自行百度搜索. 放到pycharm或者linux环境下,配置好,运行就可以. domo 登录:http://42.62.6.54:8001/index.html  ,默认用户名hequan,密码123456. 下载链接:http://p

基于Django 的 FreeSwitch 开源GUI 管理系统 YouPBX

YouPBX YouPBX 是一个强大 FreeSwift (电话软交换系统) 的管理GUI系统,基于Django开发,功能全面,体验友好,可以基于此项目做一个完善的IPPBX系统.呼叫中心应用等 项目地址 https://github.com/JoneXiong/YouPBX 使用 git clone cd YouPBX 项目界面框架用的 DjangoX, 请拷贝xadmin包到运行根目录 cp config_sample.py config.py 编辑配置freeswitch的连接信息 py