📌  相关文章
📜  使用 Flask 的待办事项列表应用程序 | Python

📅  最后修改于: 2022-05-13 01:55:08.706000             🧑  作者: Mango

使用 Flask 的待办事项列表应用程序 | Python

有许多框架允许使用Python构建您的网页,例如 Django、flask 等。Flask 是一个用Python编写的 Web 应用程序框架。 Flask 基于 WSGI(Web 服务器网关接口)工具包和 Jinja2 模板引擎。它的模块和库可帮助开发人员编写应用程序,而无需编写协议、线程管理等低级代码。

在本文中,我们将学习如何使用 Flask 框架制作待办事项列表应用程序。在这个应用程序中,您可以添加待办事项并将它们标记为完整或不完整。

安装:

pip install Flask

基本设置:
第一步:首先制作基本文件夹

mkdir app && cd app && mkdir static && mkdir templates

第2步:制作一些基本的Python文件来编写代码并根据需要命名。

第三步:运行以下命令启动服务器

touch run.py the app

第 4 步:将目录更改为应用程序-

cd app

第 5 步:为数据库创建 models.py,为 urls/views 和 __init__ 文件创建 routes.py 来打包我们的应用程序

touch models.py routes.py __init__.py 

第 6 步:转到templates/目录并创建 index.html 文件

cd templates && touch index.html 

第 7 步:转到static/目录并创建 main.css

cd static && touch main.css

现在,使用文本编辑器打开项目文件夹。目录结构应如下所示:

运行.py 文件

from app import app
  
if __name__ == '__main__':
    app.run(debug=True)

应用程序/__init__.py 文件

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
  
file_path = os.path.abspath(os.getcwd())+"/todo.db"
  
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+file_path
db = SQLAlchemy(app)
  
  
from app import routes

应用程序/routes.py 文件

from flask import render_template, request, redirect, url_for
from app import app
from app.models import Todo
from app import db
  
  
@app.route('/')
def index():
    incomplete = Todo.query.filter_by(complete=False).all()
    complete = Todo.query.filter_by(complete=True).all()
  
    return render_template('index.html', incomplete=incomplete, complete=complete)
  
  
@app.route('/add', methods=['POST'])
def add():
    todo = Todo(text=request.form['todoitem'], complete=False)
    db.session.add(todo)
    db.session.commit()
  
    return redirect(url_for('index'))
  
  
@app.route('/complete/')
def complete(id):
  
    todo = Todo.query.filter_by(id=int(id)).first()
    todo.complete = True
    db.session.commit()
  
    return redirect(url_for('index'))

应用程序/models.py 文件

from app import db
  
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(200))
    complete = db.Column(db.Boolean)
  
    def __repr__(self):
        return self.text

应用程序/main.html

 
 
 
     
    Todo App 
     
  
 
 
    

Todo List

      
Add a new todo item:          
                                      
      
      
          

Incomplete Items

          
                  {% for todo in incomplete %}              
  • {{ todo.text }} Mark As Complete
  •               {% endfor %}              
          

Completed Items

          
                  {% for todo in complete %}              
  • {{ todo.text }}
  •               {% endfor %}          
      
     

应用程序/main.css

body{ 
    background:black; 
    color:red; 
    margin-top: 5px; 
} 
.button{ 
    color:green; 
} 
.mark{font-size: 10px;} 

使用以下命令运行待办事项应用程序

python run.py