{"id":18330332,"url":"https://github.com/jackfrued/miniweibo","last_synced_at":"2025-04-09T17:44:09.470Z","repository":{"id":65976607,"uuid":"254086180","full_name":"jackfrued/MiniWeibo","owner":"jackfrued","description":"课堂练习","archived":false,"fork":false,"pushed_at":"2020-04-08T09:29:25.000Z","size":329,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-15T10:32:47.815Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackfrued.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-08T12:49:18.000Z","updated_at":"2024-09-21T17:50:14.000Z","dependencies_parsed_at":"2023-02-19T19:01:21.169Z","dependency_job_id":null,"html_url":"https://github.com/jackfrued/MiniWeibo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackfrued%2FMiniWeibo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackfrued%2FMiniWeibo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackfrued%2FMiniWeibo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackfrued%2FMiniWeibo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackfrued","download_url":"https://codeload.github.com/jackfrued/MiniWeibo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248080321,"owners_count":21044483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T19:21:52.551Z","updated_at":"2025-04-09T17:44:09.419Z","avatar_url":"https://github.com/jackfrued.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mini Weibo\n\n本项目旨在练习 Flask 相关知识，同时练习 Virtualenv、Git 的使用，以及数据库表结构设计。\n\n项目要求如下：\n\n1. 项目全部代码由 Git 管理\n2. 在 Github 上创建项目的代码仓库，所有代码提交 Github\n3. 使用 Virtualenv 管理项目中的所有依赖库\n4. 使用 Jinja2 模板构建页面，页面整体风格保持一致\n5. 页面样式使用 Bootstrap 或其他前端库进行美化\n6. 所有代码 **必须** 符合 PEP8 编码规范\n7. 全部开发、调试的过程 **必须** 在 Linux 中进行\n\n\n## 功能概览\n\n1. 登陆功能\n    - 用户注册\n    - 用户登陆\n    - 登陆后，显示用户信息\n\n2. 发微博\n    - 记录微博的必要元素\n    - 发完以后跳到微博显示页\n\n3. 主页\n    - 按时间顺序显示最新的 50 条微博\n    - 可以翻页，每页显示 20 条\n\n4. 评论微博\n    - 任何人都可以在微博下发布评论\n\n5. 回复评论\n    - 博主可以回复别人的评论\n    - 其他人也可以互相回复评论，页面上显示 “A对B说”\n\n6. 点赞 / 取消点赞\n    - 第一次点击是点赞\n    - 点赞后显示 “已赞”\n    - 再次点击，取消点赞\n\n7. 关注 / 取消关注\n    - 点击按钮直接关注\n    - 关注后，按钮显示 “已关注”\n    - 再次点击时，取消关注\n\n8. 查看所有关注的人的微博\n\n9.  查看自己所有的粉丝\n\n10. 前 50 条热门微博 (最近一月，点赞数量越多，代表微博越热)\n\n11. 选做: 尝试将微博项目部署到 Linux 服务器，让自己的网站可以通过公网访问\n\n\n## Day01: 微博项目起步\n\n### 1. 虚拟环境的使用及项目创建\n\n实际工作中，我们可能同时要维护若干个项目，但是每个项目使用的软件包、版本可能都不一样。\n\n比如项目 A 使用 Flask 1.1，而项目 B 使用 Flask 0.12 版，这时如果将两个版本同时装到全局的 Python 环境下就会冲突。\n\n所以我们要为不同的项目单独设置它运行所需的环境，这就需要借助虚拟环境管理。\n\n1. 安装\n\n    ```shell\n    pip install virtualenv\n    ```\n\n2. 创建虚拟环境\n\n    ```shell\n    cd ~/你的项目文件夹\n\n    # 创建虚拟环境\n    # 虚拟环境可以创建到任何位置，但一般与项目文件夹放到一起\n    virtualenv .venv\n    ```\n\n3. 加载虚拟环境\n\n    ```shell\n    source ~/项目文件夹/.venv/bin/activate  # 激活虚拟环境\n    ```\n\n4. 退出虚拟环境\n\n    ```shell\n    deactivate  # 当开发完成后，可以退出当前虚拟环境\n    ```\n\n5. 导出虚拟环境的软件包\n\n    ```shell\n    pip freeze \u003e requirements.txt\n    ```\n\n6. 其他人重新搭建环境时，执行\n\n    ```shell\n    source ~/项目文件夹/.venv/bin/activate  # 重新激活虚拟环境\n    pip install -r requirements.txt       # 重新下载、安装依赖包\n    ```\n\n## Day02: 项目规划及 User 模块开发\n\n1. Python环境设置\n2. 数据库设置、User模块的创建\n3. 创建user蓝图、初次迁移数据库\n4. 模板的设计、密码处理、登陆页面的开发\n5. 登陆接口调试\n6. Bug解决\n7. User模块其他视图开发\n\n\n## Day03: 微博功能及相关页面的开发\n\n1. Base页面的调整\n2. 微博表设计、登陆验证装饰器\n3. Pycharm调试问题\n4. 发表和查看微博\n5. 编辑和删除微博、装饰器的原理\n6. 随机插入调试数据\n7. 首页的分页处理\n8. 显示微博对应的用户\n\n\n## Day04: 评论、回复功能开发\n\n1. 连表查询及昨日回顾\n2. 评论表结构设计\n3. 评论视图函数开发\n4. 评论前端页面开发及Bug修复\n\n\n## Day05: 点赞、关注功能开发\n\n1. 表关系设计与构建\n2. 点赞的逻辑开发\n3. 点赞页面设计、及其他逻辑修改\n4. 上次页面的跳转\n5. 关注功能的开发\n6. 查看关注的微博\n7. 热门微博页面\n8. 上线部署\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackfrued%2Fminiweibo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackfrued%2Fminiweibo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackfrued%2Fminiweibo/lists"}