#概要
現在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()