プログラミング

【Python】掲示板に「削除機能」を追加してみた①

投稿日:2021年1月12日 更新日:

以前作成した「Flask掲示板」に、投稿を削除する機能を追加してみました。
「Flask-WTF」と「SQLAlchemy」を使ったものです。
今回は、コードと機能を紹介したいと思います。

掲示板に「削除機能」を追加してみた

Flaskで掲示板を作成した記事はこちら。

コードを見てみよう

ではコードを置いておきます。

from flask import Flask, request, render_template, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField, HiddenField, SubmitField
from wtforms.validators import InputRequired, Length

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'

SQLALCHEMY_TRACK_MODIFICATIONS = False
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db_uri = 'sqlite:///test.db'
app.config['SQLALCHEMY_DATABASE_URI'] = db_uri

db = SQLAlchemy(app)

class Message(db.Model):
    id_ = db.Column(db.Integer, primary_key=True, autoincrement=True)
    message = db.Column(db.Text())
    def __init__(self, message):
        self.message = message
try:
    db.create_all()
except Exception as e:
    print(e.args)
    pass

class Delete(FlaskForm):
    id_ = HiddenField('hidden')
    submit = SubmitField('削除')

class Insert(FlaskForm):
    message = StringField('コメント', validators=[InputRequired(),Length(max=15,message="投稿は15文字以下で")])
    submit = SubmitField('投稿')


@app.route("/", methods=['GET','POST'])
def index():
    delete = Delete()
    insert = Insert()
    if insert.validate_on_submit():
        a = Message(message=insert.message.data)
        db.session.add(a)
        db.session.commit()
        return redirect(url_for('index'))
    elif delete.validate_on_submit():
        b = Message.query.get(delete.id_.data)
        db.session.delete(b)
        db.session.commit()
        return redirect(url_for('index'))
    else:
        text = Message.query.all()
        return render_template('index.html',lines=text,insert=insert,delete=delete)
if __name__ == "__main__":
    app.run(host="localhost", debug=True)

試行錯誤の連続でした。。。

機能を見てみよう

「ANDoblog」と投稿しています。
それを追加した削除機能で、削除していますね。

まとめ

今回は、コードの紹介と「削除機能」を見ていただきました。
今まで学んできた「Flask-WTF」と「SQLAlchemy」を使ったものです。
記事にしていますので是非参考にしてみてください。
それではまた。

-プログラミング
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【Python】CSVからグラフを作成してみよう

前回は、「CSVファイル」を「pandas」で読み込んで、表示しました。今回は、読み込んだ「CSVファイル」でグラフを作成したいと思います。 CSVファイルからグラフを作成しよう 「pandas」で読 …

【Windows】ビット数を確認する方法

ソフトをインストールするうえで「64ビット」か「32ビット」で悩んだことはありますか?今回は、そんな「ビット数」の確認方法を紹介します。 ビットってなんだ? 「ビット」とは、コンピューターがデータを処 …

【Python】ログイン機能を作る「Flask-Login」⑦

「ログイン機能を作る」【Part7】。前回は「データベース」の設定を追加しました。今回は「ログイン処理」の部分を変更していこうと思います。 ログイン処理を変更しよう 「名前」に「ANDoblog」,「 …

【Python】Flaskを使ってみよう

前回は「Flaskとは」から「Flaskのインポート」まで紹介しました。今回は「Flask」を使って、動作確認までしていきたいと思います。 Flaskを使ってみよう サーバーにアクセスした際に「Hel …

【Python】Flask-WTFを使ってみよう④

前回は「文字数」の「バリデーション」を設定しました。今回は「パスワード」の方を設定していきます。 パスワードの設定をしてみよう 前回の記事はこちら。 【Python】Flask-WTFを使ってみよう③ …

YouTube