convert forms to wtfforms
This commit is contained in:
20
app.py
20
app.py
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import time
|
||||
from forms import TaskForm
|
||||
from datetime import datetime, date
|
||||
from flask import Flask, render_template, request, redirect, url_for
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
@@ -65,14 +66,15 @@ def tasks():
|
||||
|
||||
@app.route('/task/new', methods=('GET', 'POST'))
|
||||
def newTask():
|
||||
if request.method == 'POST':
|
||||
task = Task(title=request.form['title'],
|
||||
description=request.form['description'],
|
||||
form = TaskForm()
|
||||
if form.validate_on_submit():
|
||||
task = Task(title=form.title.data,
|
||||
description=form.description.data,
|
||||
created_timestamp=int(time.time()))
|
||||
db.session.add(task)
|
||||
db.session.commit()
|
||||
return redirect(f'/task/{task.id}')
|
||||
return render_template('newtask.html')
|
||||
return render_template('newtask.html', form=form)
|
||||
|
||||
@app.route('/task/<int:task_id>/')
|
||||
def task(task_id):
|
||||
@@ -81,12 +83,14 @@ def task(task_id):
|
||||
|
||||
@app.route('/task/<int:task_id>/edit', methods=('GET', 'POST'))
|
||||
def editTask(task_id):
|
||||
form = TaskForm()
|
||||
task = Task.query.get_or_404(task_id)
|
||||
if request.method == 'POST':
|
||||
task.title = request.form['title']
|
||||
task.description = request.form['description']
|
||||
if form.validate_on_submit():
|
||||
task.title=form.title.data
|
||||
task.description=form.description.data
|
||||
db.session.commit()
|
||||
return render_template('edittask.html', str=str, task=task, datetime=datetime, date=date)
|
||||
return redirect(f'/task/{task_id}')
|
||||
return render_template('edittask.html', task=task, form=form)
|
||||
@app.post('/task/<int:task_id>/delete')
|
||||
def delete_task(task_id):
|
||||
task = Task.query.get_or_404(task_id)
|
||||
|
11
forms.py
Normal file
11
forms.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms import (StringField, TextAreaField, IntegerField, BooleanField,
|
||||
RadioField)
|
||||
from wtforms.validators import InputRequired, Length
|
||||
from datetime import datetime, date
|
||||
|
||||
class TaskForm(FlaskForm):
|
||||
title = StringField('Title', validators=[InputRequired(),
|
||||
Length(min=5, max=100)])
|
||||
description = TextAreaField('Description', validators=[InputRequired(),
|
||||
Length(max=200)])
|
@@ -3,18 +3,16 @@
|
||||
{% block content %}
|
||||
<span><h1>{% block title %} Edit Task {% endblock %}</h1></span>
|
||||
<form method="post">
|
||||
{{ form.csrf_token }}
|
||||
<p>
|
||||
<label for="title">Title:</label><br>
|
||||
<input type="text" id="title" name="title"><br>
|
||||
{{ form.title.label }}
|
||||
{{ form.title(size=20) }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="description">Description</label><br>
|
||||
<textarea id="description"
|
||||
name="description"
|
||||
cols="25"
|
||||
rows="5"> </textarea>
|
||||
{{ form.description.label }}
|
||||
</p>
|
||||
{{ form.description(rows=5, cols=25) }}
|
||||
<p>
|
||||
<button class="btn btn-primary" type="submit">Edit Task</button>
|
||||
</p>
|
||||
|
@@ -3,18 +3,16 @@
|
||||
{% block content %}
|
||||
<span><h1>{% block title %} Create New Task {% endblock %}</h1></span>
|
||||
<form method="post">
|
||||
{{ form.csrf_token }}
|
||||
<p>
|
||||
<label for="title">Title:</label><br>
|
||||
<input type="text" id="title" name="title"><br>
|
||||
{{ form.title.label }}
|
||||
{{ form.title(size=20) }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="description">Description</label><br>
|
||||
<textarea id="description"
|
||||
name="description"
|
||||
cols="25"
|
||||
rows="5"> </textarea>
|
||||
{{ form.description.label }}
|
||||
</p>
|
||||
{{ form.description(rows=5, cols=25) }}
|
||||
<p>
|
||||
<button class="btn btn-primary" type="submit">Add Task</button>
|
||||
</p>
|
||||
|
Reference in New Issue
Block a user