三 Flask+ MySQL 数据库操作
一: __init__.py作用:
__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。
__init__.py:
from flask import Flask, url_for, request, redirect, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_object('config') // 加载配置 db = SQLAlchemy(app) // from app import models,views
models.py
__tablename__: 表名称。
__repr__:Python中这个_repr_函数,对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串. 可以Print出对象
from app import db #db是在app/__init__.py生成的关联后的SQLAlchemy实例 class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(320), unique=True) password = db.Column(db.String(32), nullable=False) def __repr__(self): return '<User %r>' % self.username class Admin(db.Model): __tablename__ = 'admins' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(320), unique=True) password = db.Column(db.String(32), nullable=False) def __repr__(self): return '<User %r>' % self.username
create_db.py
create_all: 这个函数会找到tables,然后连接DB,再然后创建表。
from app import db db.create_all()
用命令行执行python create_db.py; 或者 在pycharm中 直接,右键create_db.py就会创建表。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
蓝图(blueprint):
admin = Blueprint('admin',__name__) // 定义一个蓝本名字是admin
@admin.route('/index') // 蓝本是用来定义router映射的。
GitHUB 地址: https://github.com/liufeiSAP/ArchiveMan
目录结构如下: