使用 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