博客项目需求分析

# 博客项目

### 需求分析

- 用户注册登录
- 用户信息管理
- 博客发表回复
- 博客列表展示
- 博客分页展示
- 博客收藏
- 搜索、统计、排序、...

### 目录结构

```
blog/                    # 项目根目录
    manage.py                # 启动控制代码
    requirements.txt        # 依赖包类表文件
    venv/                    # 虚拟环境目录
    migrations/                # 数据库迁移目录
    tests/                    # 测试模块目录
    app/                    # 整个程序目录
        templates/                # 模板文件目录
            common/                    # 通用模板
            email/                    # 邮件模板
            。。。
        static/                    # 静态文件目录
            img/
            css/
            js/
            favicon.ico
        views/                    # 蓝本文件目录
        models.py                # 数据模型文件
        forms.py                # 表单类文件
        config.py                # 配置文件
        extensions.py            # 扩展文件(存放所有扩展)
        email.py                # 邮件发送功能函数
        __init__.py                # 包文件
```

### 项目准备

- 根据目录结构,创建相关目录及文件
- 书写配置文件(就是书写各种环境的配置类)
- 使用工厂方法创建应用实例,并初始化配置
- 添加各种扩展(顺便粘贴邮件发送函数)
- 配置蓝本(添加各种蓝本文件,并注册)
- 项目基础模板定制(顺便添加消息闪烁及测试)

### 用户管理

- 用户注册激活

  - 在基础模板中添加点击跳转的链接
  - 在蓝本中添加对应的视图函数,渲染指定模板文件
  - 创建用户注册的模板文件
  - 设计用户注册表单类,在视图函数中创建,然后模板文件中渲染
  - 完成用户注册的校验逻辑
  - 设计用户模型类,并完成迁移(别忘记在其他文件中导入一次)
  - 用户注册及激活邮件的发送流程
  - 用户身份token的携带与解析
  - 完整的用户注册激活流程

- 用户登录退出(flask-login)

  - 说明:flask-login是一个专门用来管理用户登录退出的扩展库

  - 安装:`pip install flask-login`

  - 使用:

    ```python
    # 第一步:添加扩展
    from flask_login import LoginManager

    login_manager = LoginManager()

    def config_extensions(app):
        ...
        login_manager.init_app(app)
        # 设置登录端点
        login_manager.login_view = ‘user.login‘
        # 设置登录信息
        login_manager.login_message = ‘请先登录,然后才能访问‘

    # 第二步:继承自UserMixin类(也可以自己实现相关方法)
    from flask_login import UserMixin

    class User(UserMixin, db.Model):
          ...

    # 第三步:实现回调
    @login_manager.user_loader
    def load_user(uid):
        return User.query.get(uid)
    ```

  - 总结

    ```
    状态切换:
        login_user        # 可以提供记住我的功能
        logout_user
    状态查询:
        is_authenticated    登录状态
        is_anonymous        匿名状态
    路由保护:
        login_required        # 保护需要登录才能访问的路由
    当前用户:
        current_user        # 哪里都可以使用,在模板中不需要分配
    ```

  ### 练习

  - 实现用户信息的管理

原文地址:https://www.cnblogs.com/liangliangzz/p/10222039.html

时间: 2024-10-06 01:20:14

博客项目需求分析的相关文章

Node.js 从零开发 web server博客项目

第1章 课程介绍 包括课程概述.核心模块.核心技术.课程安排.课程收获.讲授方式.学习前提等方面的介绍,让同学们对课程项目有一个直观的了解. 1-1 课程导读 试看第2章 nodejs 介绍 本章主要为了照顾尚未入门或者刚刚入门 nodejs 的同学,介绍 nodejs 的下载.安装和基本使用,以及 nodejs 和前端 javascript 的区别.另外,重点介绍了服务端开发和前端开发思路上的区别,为后续的开发做一个基础的铺垫. 2-1 下载和安装 2-2 nodejs和js的区别 2-3 c

Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备

第1章 课程介绍包括课程概述.核心模块.核心技术.课程安排.课程收获.讲授方式.学习前提等方面的介绍,让同学们对课程项目有一个直观的了解. 第2章 nodejs 介绍本章主要为了照顾尚未入门或者刚刚入门 nodejs 的同学,介绍 nodejs 的下载.安装和基本使用,以及 nodejs 和前端 javascript 的区别.另外,重点介绍了服务端开发和前端开发思路上的区别,为后续的开发做一个基础的铺垫. 第3章 项目介绍课程是通过案例的形式来学习 nodejs ,本章先来介绍这个案例,即个人博

博客项目实现文章评论功能(重点是评论回复)

我开发的博客网站的地址:http://118.89.29.170/RiXiang_blog/ 博客项目代码github:https://github.com/SonnAdolf/sonne_blog 有了我的已成型的项目和代码,可以更容易理解这篇文章. 本篇文章记录下自己博客项目评论功能实现的全过程,重点其实是评论回复功能. [一,写评论] 写评论部分我没有使用富文本编辑器,只是单纯地使用了textarea标签,所以后台不需要作html标签的白名单检验(关于防范xss攻击,可以看我之前的一篇文章

Django博客项目之首页

一.Django-admin 1.创建表和注册表 settings.py文件: TIME_ZONE = 'Asia/Shanghai'    #支持中文数据 models.py文件内容: from django.db import models from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser):     """     用户信息     ""&q

Django——博客项目

博客项目 目前的目标是构建一个基于Django的前后端完整的博客系统,首先对项目流程整理如下: 1. 分析需求 1.1. 1.基于用户认证组件和Ajax实现登录验证 1.2. 基于forms组件和Ajax实现注册功能 1.3. 设计系统首页(文章列表渲染) 1.4. 设计个人站点页面 1.5. 文章详情页 1.6. 实现文章点赞功能 1.7. 实现文章的评论 1.7.1. 文章的评论 1.7.2. 评论的评论 1.8. 富文本编辑框和防止xss攻击 2. 设计表结构 module代码: from

博客项目续

# 博客项目 ### 昨日内容完善 - 密码加密存储 ```python from werkzeug.security import generate_password_hash, check_password_hash # 用户模型 class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True) passw

Node.js Express博客项目实战 之 系统设置

系统设置在侧边栏的系统管理中: 在视图views的后台index.html中对应的系统设置写入跳转的路由: <li><a href="/admin/system" target="right"><span class="icon-caret-right"></span>系统设置</a></li> 在后台路由中进行注册该路由system.js // 系统管理 let syste

一款基于vue.js 和node构建个人博客项目

前言 本项目是一款个人学习的博客项目,主要是为了学习vue2 和 node.js.另外涉及到MySQL redis nginx 等技术栈知识 项目地址 预览地址 (PC或者手机) > 注意:PC端支持markdown编辑博客,但是手机端不支持编辑,仅支持查看博客内容 博客预览地址:node后台版本 预览账号 账号:test 密码:123 技术栈 前端:html.css.sass.ES6.webpack.vue-cli.vue2.vuex.vue-router.axios.element-ui 后

服务器部署 halo博客项目

2020-2-13 13:58:37 前几天抢到了阿里云学生免费服务器6个月的. 顺便部署了一个自己的博客项目  halo 开源的 https://halo.run/ 看里面的linux部署就行了,然后配置了nginx   的conf  ,然后正常启动了 http://chentianxiang.vip/  我的网站!!! 感觉很是开心啊! 虽然说项目是java的,然后linux部署还是不算太难,毕竟有以前的经验啦! 哈哈哈哈哈哈! 反正开学尚早,在家看专业课,做数学,宅家里!疫情还没结束!!