保持清醒,不断思考。

Mike lucis


  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 联系
  •     

© 2023 Mike lucis

Theme Typography by Makito

Proudly published with Hexo

备案号: 湘ICP备2021005917号-1

友情链接: Lonely's Bolg

ღゝ◡╹)ノ♡

基于Django的Discuz论坛系统

发布于 2021-02-16 Python  Django 

Django-logo

¶ 前言

Python下有许多款不同的 Web 框架。 Django 是重量级选手中最有代表性的一位。许多成功的网站和 APP 都基于 Django 。

  • 一款采用Python语言编写的开源 Web 框架,于2005年发布,早期曾用于新闻发布与内容管理(速度快时效性强)。
  • Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。

使用 Django ,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

  • Django 的用途
    • 网站后端开发
    • 微信公众号后台开发
    • 微信小程序后台开发
    • 基于 HTTP / HTTPS 协议的后台服务器开发
    • 在线语音/图像识别服务器
    • 在线第三方身份验证服务器等

¶ 项目简介

1
2
3
4
5
6
7
8
9
10
11
12
13
14
项目名:基于Django的Discuz论坛
Django版本:3.1.6
Requirements:
- SQLite
- Django-3.1.5
- pytds, pytz
- pyodbc
- Django-Database-URL
- Widget-Tweaks
Other-module:
- Bootstrap-4.0.0
- Simplemde-1.11.2
- jQuery-3.5.1
- Popper-2.6.0

¶ 源代码根目录树:

1
2
3
4
5
6
7
8
9
10
11
Django-Discuz/
|-- Myproject/
| |-- accounts/
| |-- boards/
| |-- myproject/
| |-- static/
| |-- templates/
| |-- ...
| |-- db.sqlite3
| +-- manage.py
+-- venv/

¶ 如何运行?

  1. 使用 pip 安装好所需环境

    1
    pip install [所需包名]
  2. 迁移数据库:

    1
    2
    python manage.py makemigrations
    python manage.py migrate
  3. 创建管理员账户:

    1
    python manage.py createsuperuser
  4. 在源代码目录打开命令行窗口(或 cd 切换目录)

  5. 启动 Django 服务器

    1
    python manage.py runserver {端口名}

    image-20210216152335184

  6. 在浏览器地址栏内输入命令行所示地址 http://127.0.0.1:8000/

  7. Have Fun Guys ~

¶ 页面说明

¶ 首页

ind

`首页👆`

整体页面从上至下依次为:顶部导航,面包屑导航栏,板块列表

image-20210216160101536

以不同身份向其中添加数据后

1
2
3
4
- 其中Board栏中为板块名称及介绍;
- Posts栏为帖子数量(包括回复);
- Topics栏为主题帖数量;
- Last Post栏包含最后发表信息;

¶ 板块页面

image-20210216161301485

`板块页👆`

1
2
3
4
5
- Topic栏为主题名及主题页数
- Starter栏为主题创建者
- Replies为回复数量
- Views为总计点击数
- Last Update为最后编辑时间

点击 `New topic` 按钮后可发起新主题帖👇

New-topic

1
2
- Subject为主题名
- Message为主题内容

点击 `Post` 按钮进行提交👇

topic

¶ 主题页面

topic

1
2
- 创建人发起的帖子以黑色重点框注
- 他人回复帖子则为灰框

点击 `Reply` 按钮可进行回复👇

Reply

1
2
- 编辑支持Markdown语法
- 回复页面下方可查看历史回复

点击 `Post a reply` 按钮提交回复

¶ 用户账户

¶ 后台管理

当你第一次运行服务器时,页面最上方不会显示你的账户信息,因为你还未登录,且项目内无任何账户。我们需要新建一个超级管理员账户。

为此请输入以下命令:

1
python manage.py createsuperuser

superuser

`按图索骥👆`

完成设置后即可体验到 Django 自带的强大后台管理了。

在浏览器地址栏中输入:http://127.0.0.1:8000/admin/ (加上 /admin)

image-20210216172116973

输入刚刚设置的 SuperUser 账户密码,即可对站点进行可视化管理。

image-20210216172247313

¶ 账户系统

点击 `查看站点` 回到主页👇

index-2

此时注意右上角的用户组件,已经显示出当前登录账户名称。这个组件我们等会再细讲。

GIF

还记得之前介绍过的主题页面吗?

如果你已经登录账户并发布 / 回复了帖子,你会发现在你发布帖子内容的下方出现了一个 Edit 按钮👇

Edit

这个 `Edit` 按钮是随着当前登录用户而出现的,只有帖子发布者具有修改帖子的权限。

image-20210216182846779

`Jack账户具有帖子的编辑权限` 👆

对了,此处用户头像使用了 Gravatar, 介绍在这 :

1
2
3
- 对于注册用户,显示已设置头像
- 对于非注册用户,缺省显示像素化头像(8-bit arcade-style pixelated faces)
(本功能使用邮箱地址判定身份,注册时请确认邮箱是否有效)

¶ 认证系统

现在是时候说说那个组件的事了,最开始上方有两个按钮,它们对应登录与注册。

image-20210216191142326

login

`登录页面👆`

signup

`注册页面👆`

而已登录用户会在顶栏显示他们的用户名,点击它会唤出一个下拉菜单👇(利用 Jquery 实现)

Jquery

其中第一项 `My Account` ,用来对个人信息进行修改

MyAccount

`修改个人信息👆`

第二项 `Change Password` ,用来修改密码

ChangePwd

`修改密码页面👆`

changepwddone

`修改成功👆`

下拉菜单最后一项 `Log out` ,作用是退出登录

logout

¶ 项目地址

MikeLucis/Django-Discuz: My first Django test. (github.com)

¶ 欢迎大家借鉴Fork!

分享到 

 上一篇: Restful API接口设计标准及规范 下一篇: Django基于类的视图策略 

© 2023 Mike lucis

Theme Typography by Makito

Proudly published with Hexo

备案号: 湘ICP备2021005917号-1

友情链接: Lonely's Bolg

ღゝ◡╹)ノ♡