摘要:用意靈活的文件組織結構讓很多新手玩家痛苦萬分網(wǎng)上的相關教程也是良莠不齊本人也是在幾近崩潰的邊緣瘋狂試探堅持即時勝利終于被我摸索出一個較為適用的簡單文件組織結構本文從單文件結構逐步拆分成多個部分至于其中各個步驟拆分的用意還請恕在下才疏學淺難以
1用意
flask靈活的文件組織結構讓很多新手玩家痛苦萬分,網(wǎng)上的相關教程也是良莠不齊,本人也是在幾近崩潰的邊緣瘋狂試探
,堅持即時勝利,終于被我摸索出一個較為適用的簡單文件組織結構. 本文從單文件結構,逐步拆分成多個部分,至于其中
各個步驟拆分的用意,還請恕在下才疏學淺,難以用文字形容,各位看官請自行體會.
目錄結構
app.py
from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) class Record(db.Model): __tablename__ = "record" id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) @app.route("/") def index(): return render_template("index.html") @app.route("/sign_up", methods=["GET", "POST"]) def add_user(): if request.method == "GET": return render_template("sign_up.html") else: for i in request.args: print(i) # print(request.args.get("username")) #None name = request.form.get("name") print("name={}".format(name)) content = request.form.get("content") print("content={}".format(content)) record = Record(name=name, content=content) db.session.add(record) db.session.commit() return redirect(url_for("index")) if __name__ == "__main__": db.init_app(app) app.run()
config.py
SQLALCHEMY_TRACK_MODIFICATIONS=True DIALECT = "mysql" DRIVER = "pymysql" USERNAME = "root" PASSWORD = "hujin666.." HOST = "127.0.0.1" PORT = "3306" DATABASE = "socketio_test" SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
index.html
首頁 注冊
sign_up.html
注冊
首先我們在根目錄中新建一個extensions.py,將app.py中的頭部部分拿進去
extensions.py
from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app)
然后在根目錄中新建models包,并在models里面新建record.py文件
record.py
from extensions import db class Record(db.Model): __tablename__ = "record" id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False)
接著在根目錄下新建routes包,并在routes里面新建record.py的路由文件
from extensions import app,db from flask import render_template, request, redirect, url_for from models.record import Record @app.route("/") def index(): return render_template("index.html") @app.route("/sign_up", methods=["GET", "POST"]) def add_user(): if request.method == "GET": return render_template("sign_up.html") else: for i in request.args: print(i) # print(request.args.get("username")) #None name = request.form.get("name") print("name={}".format(name)) content = request.form.get("content") print("content={}".format(content)) record = Record(name=name, content=content) db.session.add(record) db.session.commit() return redirect(url_for("index"))
最后在根目錄中新建一個入口文件run.py
run.py
from extensions import db from routes.record import app if __name__ == "__main__": db.init_app(app) app.run()
目錄結構
數(shù)據(jù)庫初始化比較簡單,請自行建庫建表,修改連接配置
自此大功告成,邁過flask的第一大坑
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45199.html
摘要:網(wǎng)頁顯示數(shù)據(jù)庫信息使用我們剛學習的,在網(wǎng)頁中顯示數(shù)據(jù)庫表中的數(shù)據(jù)。在開始運行程序前,確保數(shù)據(jù)庫中執(zhí)行過創(chuàng)建表和創(chuàng)建用戶的操作,詳見鏈接描述。 網(wǎng)頁顯示數(shù)據(jù)庫信息 使用我們剛學習的flask_sqlalchemy,在網(wǎng)頁中顯示數(shù)據(jù)庫表中的數(shù)據(jù)。在開始運行程序前,確保數(shù)據(jù)庫中執(zhí)行過創(chuàng)建表和創(chuàng)建用戶的操作,詳見鏈接描述。 # 模板文件templates/list.html {% extend...
閱讀 1210·2019-08-30 15:55
閱讀 959·2019-08-30 15:55
閱讀 2156·2019-08-30 15:44
閱讀 2890·2019-08-29 14:17
閱讀 1136·2019-08-29 12:45
閱讀 3311·2019-08-26 10:48
閱讀 3136·2019-08-23 18:18
閱讀 2605·2019-08-23 16:47