zoukankan      html  css  js  c++  java
  • 博客项目需求分析

    # 博客项目
    
    ### 需求分析
    
    - 用户注册登录
    - 用户信息管理
    - 博客发表回复
    - 博客列表展示
    - 博客分页展示
    - 博客收藏
    - 搜索、统计、排序、...
    
    ### 目录结构
    
    ```
    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        # 哪里都可以使用,在模板中不需要分配
        ```
    
      ### 练习
    
      - 实现用户信息的管理
  • 相关阅读:
    让Visual Studio 2008 和 2010支持Web Services Enhancements (WSE) 3.0
    不清楚BA的角色是什么
    int的一点事,读《深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别》
    Angular2.0视频教程来了!
    [11]缺少动态连接库.socannot open shared object file: No such file or directory
    计算机网络常考知识点总结
    计算机网络——数据链路层
    计算机网络——物理层
    Java内存模型_基础
    JAVA_Lock
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/10222039.html
Copyright © 2011-2022 走看看