摘要:用意灵活的文件组织结构让很多新手玩家痛苦万分网上的相关教程也是良莠不齐本人也是在几近崩溃的边缘疯狂试探坚持即时胜利终于被我摸索出一个较为适用的简单文件组织结构本文从单文件结构逐步拆分成多个部分至于其中各个步骤拆分的用意还请恕在下才疏学浅难以
1用意
flask灵活的文件组织结构让很多新手玩家痛苦万分,网上的相关教程也是良莠不齐,本人也是在几近崩溃的边缘疯狂试探
,坚持即时胜利,终于被我摸索出一个较为适用的简单文件组织结构. 本文从单文件结构,逐步拆分成多个部分,至于其中
各个步骤拆分的用意,还请恕在下才疏学浅,难以用文字形容,各位看官请自行体会.
目录结构
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
2.开始拆分注册
首先我们在根目录中新建一个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()
目录结构
数据库初始化比较简单,请自行建库建表,修改连接配置
自此大功告成,迈过flask的第一大坑
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/45199.html
摘要:网页显示数据库信息使用我们刚学习的,在网页中显示数据库表中的数据。在开始运行程序前,确保数据库中执行过创建表和创建用户的操作,详见链接描述。 网页显示数据库信息 使用我们刚学习的flask_sqlalchemy,在网页中显示数据库表中的数据。在开始运行程序前,确保数据库中执行过创建表和创建用户的操作,详见链接描述。 # 模板文件templates/list.html {% extend...
阅读 1207·2019-08-30 15:55
阅读 954·2019-08-30 15:55
阅读 2149·2019-08-30 15:44
阅读 2879·2019-08-29 14:17
阅读 1130·2019-08-29 12:45
阅读 3301·2019-08-26 10:48
阅读 3132·2019-08-23 18:18
阅读 2599·2019-08-23 16:47