# flask-todolist
> 使用Flask, bootstrap4 和 SQLAlchemy 开发的todo webapp
# 简介
### 功能
- 用户登录
- 新用户注册
- 添加待办任务
- 删除待办任务
- 完成待办任务
- 修改密码
- 修改用户名
- 退出登录
### Demo: http://81.68.76.27:5001/login
# 安装
### 方法一:Using docker
```bash
# 拉取镜像并创建容器
sudo docker pull zouxlin3/todo
sudo docker run --name todo -d -p 5000:5000 -v /root/.todo:/todo/data zouxlin3/todo
```
映射目录`/root/.todo`可更换
```bash
# 进入容器,初始化数据库
sudo docker exec -it todo bash
flask initdb --drop
```
### 方法二:Manually
```bash
# 下载所有文件并安装运行环境
git clone https://github.com/zouxlin3/flask-todolist.git
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
```
```bashe
# 初始化数据库并运行
flask run
flask initdb --drop
```
# 参考项目
- [greyli/watchlist](https://github.com/greyli/watchlist)
- [themaxsandelin/todo](https://github.com/themaxsandelin/todo)
- [nauvalazhar/bootstrap-4-login-page](https://github.com/nauvalazhar/bootstrap-4-login-page)
# 许可证
[MIT](LICENSE) © zouxlin3
使用Flask,bootstrap4和SQLAlchemy开发的todowebapp.zip
需积分: 0 76 浏览量
更新于2023-09-28
收藏 275KB ZIP 举报
在本项目中,开发者使用了Python的Web框架Flask、前端设计库Bootstrap 4以及ORM(对象关系映射)库SQLAlchemy,构建了一个简洁而实用的待办事项(Todo)Web应用程序。接下来,我们将深入探讨这三个关键技术点及其在项目中的应用。
**Flask**
Flask是Python的一个轻量级Web服务器网关接口(WSGI)微框架。它的核心理念是“简单”,使得开发者可以快速搭建Web应用。在本项目中,Flask主要负责以下功能:
1. **路由管理**:Flask通过装饰器定义URL路由和对应的处理函数,例如`@app.route('/')`定义了访问根URL时调用的函数。
2. **视图函数**:处理HTTP请求并返回响应。在`flask-todolist-master`中,这些函数通常用于处理用户交互,如添加、删除或更新待办事项。
3. **模板引擎**:Flask支持Jinja2模板引擎,用于生成动态HTML页面。项目中的HTML文件与Flask视图函数相互配合,提供用户界面。
4. **静态文件服务**:Flask能方便地处理CSS、JavaScript等静态文件,Bootstrap 4的CSS和JS文件就是通过Flask提供的。
**Bootstrap 4**
Bootstrap是一个流行的开源前端框架,主要用于网页设计和开发。Bootstrap 4提供了许多预定义的CSS样式、组件和JavaScript插件,大大简化了网页布局和交互设计。在`flask-todolist-master`项目中,Bootstrap 4的使用体现在以下几个方面:
1. **响应式布局**:Bootstrap 4的网格系统确保了网页在不同设备上都能自适应显示,提供良好的用户体验。
2. **UI组件**:项目中可能使用了Bootstrap的按钮、表单、模态框等组件来创建待办事项的添加、编辑和删除功能。
3. **样式美化**:Bootstrap的CSS样式为页面提供了统一的视觉风格,包括字体、颜色和间距等。
**SQLAlchemy**
SQLAlchemy是Python的一个强大的ORM库,它允许开发者使用面向对象的方式来操作数据库。在本项目中,SQLAlchemy的主要作用有:
1. **模型定义**:开发者定义了Python类来表示数据库中的表格,如`Todo`类代表`todos`表,类的属性对应表的列。
2. **数据库操作**:通过SQLAlchemy的Session对象,可以方便地执行CRUD(创建、读取、更新、删除)操作。例如,添加新的待办事项、查询所有待办事项、更新特定待办事项的状态或删除已完成的任务。
3. **数据库迁移**:SQLAlchemy支持数据库迁移,使得数据库结构的修改可以与代码同步。
`flask-todolist-master`项目展示了如何利用Flask、Bootstrap 4和SQLAlchemy构建一个完整的Web应用程序,实现了待办事项的管理功能。Flask作为后端框架处理HTTP请求,Bootstrap 4提供了美观的前端界面,而SQLAlchemy则简化了数据库操作,三者共同协作,构建出高效、易用的Web应用。这个项目对于学习Web开发的初学者来说,是一个很好的实践示例。
天天501
- 粉丝: 626
- 资源: 5904
最新资源
- Java毕业设计-基于springboot+Vue的大学生就业需求分析系统(附源码,部署教程).zip
- 基于鹈鹕优化算法的分类、回归与时序预测:多种机器学习模型集成及Matlab实现,鹈鹕优化算法优化用于分类 回归 时序预测 鹈鹕优化支持向量机SVM,最小二乘支持向量机LSSVM,随机森林RF,极限学习
- Java毕业设计-基于springboot+Vue的基于个性化定制的智慧校园管理系统设计与开发(附源码,部署教程).zip
- Java毕业设计-基于springboot+Vue的车辆管理系统2(附源码,部署教程).zip
- Java毕业设计-基于SpringBoot+Vue的宠物商城网站设计与实现(附源码,部署教程).zip
- Java毕业设计-基于springboot+Vue的机动车号牌管理系统2(附源码,部署教程).zip
- Java毕业设计-基于SpringBoot+Vue的宠物商城网站设计与实现2(附源码,部署教程).zip
- 【ClothSwapSemanticSegmentationFullAuto】语义切割全自动换装
- 【ClothSwapImageMaskProcessSemiAuto】图像与遮罩多样化处理换装
- 30个热门的前端面试题及其答案
- 足球数据集,10714张图片,yolov5格式txt标注,可识别 裁判员,足球,守门员和球员 89.8%的正确识别率
- 【ClothSwapFluxReduxTextureRemovalResamplingSemiAuto】FluxRedux换装去纹理二次采样
- Java毕业设计-基于springboot+Vue的车辆管理系统(附源码,部署教程).zip
- Java毕业设计-基于springboot+Vue的基于Java的房地产销售管理系统的设计与实现2(附源码,部署教程).zip
- Java毕业设计--基于SpringBoot+Vue的基于JS的个人云盘管理系统的设计与实现2(附源码,部署教程).zip
- 西门子PLC 1200与V20变频器通讯程序实现及操作手册(触摸屏控制、频率设定与读取),西门子1200与西门子V20变频器通讯程序 器件:西门子1200 PLC,西门子v20变频器,西