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