NFT项目开发日志(1)——数据库设计——2021.5.8

2021/5/9 2:25:24

本文主要是介绍NFT项目开发日志(1)——数据库设计——2021.5.8,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

NFT项目开发日志(1)——数据库设计

  • 一丶环境配置:python-flask
  • 二丶数据库设计
  • 三丶实现
    • 1.在蓝本(blueprint)下面创建scyner模板
    • 2.创建scyner模板后会在其下自动生成一个__init__.py文件(空文件)
    • 3.在scyner模板下创建一个models.py文件(数据操作)
        • (1)数据表
        • (2)表之间的关系
      • (1)封装式建表
        • A.导入模板
        • B.建表
      • (2)直接建表(db.Model)
    • 4.在scyner模板下创建一个scyner.py文件(其他操作)
      • (1)导入相关模板
      • (2)创建蓝本
      • (3)编写路由
    • 5.修改蓝本同级目录下的__ini__.py文件
      • (1)导入模板
      • (2)注册蓝本(找到def register_blueprints(app)方法)

一丶环境配置:python-flask

二丶数据库设计

三丶实现

1.在蓝本(blueprint)下面创建scyner模板

2.创建scyner模板后会在其下自动生成一个__init__.py文件(空文件)

3.在scyner模板下创建一个models.py文件(数据操作)

(1)数据表

  • chain
  • block
  • transaction
  • contract
  • contract_templat
  • event

(2)表之间的关系

  • chain 1:n block
  • block 1:n transaction
  • contract 1:n transaction
  • contract_templat 1:n contract
  • transaction 1:n event

(1)封装式建表

A.导入模板

from 文件名.database import (
    Column,
    Model,
    SurrogatePK,
    db,
    reference_col,
    relationship,
)

B.建表

class Chain(SurrogatePK, Model):
    __tablename__ = "chain"
    name = Column(db.String(88), nullable=False)
    config = Column(db.JSON, default={}, nullable=False)
    height = Column(db.Integer(), nullable=False)
    inserted_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)
    updated_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)

(2)直接建表(db.Model)

class Chain(db.Model):
    __tablename__ = "chain"
	id = db.Column(db.Integer(), nullable=False, primary_key=True)
    name = db.Column(db.String(88), nullable=False)
    config = db.Column(db.JSON, default={}, nullable=False)
    height = db.Column(db.Integer(), nullable=False)
    inserted_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)
    updated_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)

4.在scyner模板下创建一个scyner.py文件(其他操作)

(1)导入相关模板

(2)创建蓝本

syncer_bp = Blueprint("syncer", __name__, url_prefix="/syncer", static_folder="../static")

(3)编写路由

5.修改蓝本同级目录下的__ini__.py文件

(1)导入模板

from 文件名.blueprints.syncer.syncer import syncer_bp

(2)注册蓝本(找到def register_blueprints(app)方法)

app.register_blueprint(syncer_bp, url_prefix='/syncer')


这篇关于NFT项目开发日志(1)——数据库设计——2021.5.8的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程