LoginSignup
1
2

More than 1 year has passed since last update.

flask  SQL Alchemy簡単なまとめ

Last updated at Posted at 2021-07-23

概要

現在udemyにて
The Python Mega Course: Build 10 Real World Applications
を視聴中。その際に出てきた内容のまとめ.
Udemyの中だとめちゃくちゃ面白い。おすすめ

1 flaskについて

templatesフォルダにindex.htmlの作成。合わせて、必要なhtmlファイルを作成
staticフォルダにCSSファイルの作成
templatesフォルダと同じ次元に、nnn.pyの作成

① ルーティングについて

from flask import Flask

nnn=Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

また、その他のページを作りたい場合は

@app.route("/任意の名前")
def index():
    return render_template("任意の名前.html")

とする。

② 実行について

if __name__ == '__main__':
    nnn.debug=True
    nnn.run()

こうすれば、importとかで実行された場合でない時に、flaskが起動

2 SQLALchemyについて

SQL Alchemyについては他の記事をググればわかりやすい記事が無限に出てくる。毎回コミットとかしなくていいからpycopg2よりいい、らしい。
e-mailアドレスと名前をSQLデータベースに登録するコード

① コネクションの確立について

from flask_sqlalchemy import SQLAlchemy

nnn.config['SQLALCHEMY_DATABASE_URI']='postgresql://ID:パスワード@localhost/任意のテーブル' #
db=SQLAlchemy(nnn) 

② テーブル名と各カラムの作成

class Data(db.Model):
    __tablename__=DATABASE"
    id=db.Column(db.Integer,primary_key=True)
    email_=db.Column(db.String)
    name=db.Column(db.String)


        def __init__(self,email):
        self.email=email
                self.name=name


この後、ターミナルで dbをimportして、db.create_all()としてあげれば、無事連携が完了する。

③ データベースにデータを送信する方法

1 index.htmlについて

<form action="{{url_for('任意の名前')}}" method="POST">
 <input name="email_name" required></br>
<input   name="user_name" required></br>
<button type="submmit">送付</buttuon>
</form>

{{url_for}}と書く必要があるのはjinjaがほにゃらら(まだよくわかってないので要勉強)。ボタンを押したら”任意の名前”ページに遷移
methodをPOSTにするのを忘れない(デフォはGET)
nameで設定したキーがpythonで使用される。

1 pythonについて

#変数email,nameに、index.htmlから送られてくるデータを代入

@app.route("/任意の名前", methods=['POST'])
def success():
    if request.method=='POST':
        email=request.form["email_name"]
                name=request.form["user_name"]
#データの送信
    data=Data(email,name)
    db.session.add(data)  
    db.session.commit()
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2