¶ 前言
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 | 项目名:基于Django的Discuz论坛 |
¶ 源代码根目录树:
1 | Django-Discuz/ |
¶ 如何运行?
-
使用
pip
安装好所需环境1
pip install [所需包名]
-
迁移数据库:
1
2python manage.py makemigrations
python manage.py migrate -
创建管理员账户:
1
python manage.py createsuperuser
-
在源代码目录打开命令行窗口(或 cd 切换目录)
-
启动 Django 服务器
1
python manage.py runserver {端口名}
-
在浏览器地址栏内输入命令行所示地址
http://127.0.0.1:8000/
-
Have Fun Guys ~
¶ 页面说明
¶ 首页
`首页👆`
整体页面从上至下依次为:顶部导航,面包屑导航栏,板块列表
以不同身份向其中添加数据后
1 | - 其中Board栏中为板块名称及介绍; |
¶ 板块页面
`板块页👆`
1 | - Topic栏为主题名及主题页数 |
点击 `New topic` 按钮后可发起新主题帖👇
1 | - Subject为主题名 |
点击 `Post` 按钮进行提交👇
¶ 主题页面
1 | - 创建人发起的帖子以黑色重点框注 |
点击 `Reply` 按钮可进行回复👇
1 | - 编辑支持Markdown语法 |
点击 `Post a reply` 按钮提交回复
¶ 用户账户
¶ 后台管理
当你第一次运行服务器时,页面最上方不会显示你的账户信息,因为你还未登录,且项目内无任何账户。我们需要新建一个超级管理员账户。
为此请输入以下命令:
1 | python manage.py createsuperuser |
`按图索骥👆`
完成设置后即可体验到 Django 自带的强大后台管理了。
在浏览器地址栏中输入:http://127.0.0.1:8000/admin/
(加上 /admin
)
输入刚刚设置的 SuperUser
账户密码,即可对站点进行可视化管理。
¶ 账户系统
点击 `查看站点` 回到主页👇
此时注意右上角的用户组件,已经显示出当前登录账户名称。这个组件我们等会再细讲。
还记得之前介绍过的主题页面吗?
如果你已经登录账户并发布 / 回复了帖子,你会发现在你发布帖子内容的下方出现了一个 Edit 按钮👇
这个 `Edit` 按钮是随着当前登录用户而出现的,只有帖子发布者具有修改帖子的权限。
`Jack账户具有帖子的编辑权限` 👆
1 | - 对于注册用户,显示已设置头像 |
¶ 认证系统
现在是时候说说那个组件的事了,最开始上方有两个按钮,它们对应登录与注册。
`登录页面👆`
`注册页面👆`
而已登录用户会在顶栏显示他们的用户名,点击它会唤出一个下拉菜单👇(利用 Jquery 实现)
其中第一项 `My Account` ,用来对个人信息进行修改
`修改个人信息👆`
第二项 `Change Password` ,用来修改密码
`修改密码页面👆`
`修改成功👆`
下拉菜单最后一项 `Log out` ,作用是退出登录
¶ 项目地址
MikeLucis/Django-Discuz: My first Django test. (github.com)
¶ 欢迎大家借鉴Fork!