我第一次使用FLASK-SQLITE开发具有Web界面的数据库。基本功能是“ 搜索”数据库。我的数据库列表很大,必须 预加载 。我使用一个简单的python脚本将csv文件加载到数据库:
要创建数据库并批量加载表,请执行以下操作:
import csv
import sqlite3
# Create the database
connection = sqlite3.connect('test.db')
cursor = connection.cursor()
# Create the table
cursor.execute('DROP TABLE IF EXISTS line_info')
cursor.execute("CREATE TABLE line_info (id INT PRIMARY KEY NOT NULL, acc_id TEXT, EUSOL_id TEXT, acc_name TEXT, reasons TEXT, genebank TEXT);")
connection.commit()
# Load the CSV file into CSV reader
creader = csv.reader(open("line_info.csv", 'rt', encoding = 'utf-8'))
# Iterate through the CSV reader, inserting values into the database
for i in creader:
cursor.execute('INSERT INTO line_info VALUES (?,?,?,?,?,?)', i )
connection.commit()
connection.close()
所以现在我检查并创建了test.db。现在,如果我有一个预加载的数据库,我对于需要放入 models.py 的内容感到困惑。 还,我是否需要更改config.py和__init__.py中的任何内容?
我的 models.py :
from app import db
class Line_info(db.Model):
id = db.Column(db.Integer, primary_key=True)
acc_ID = db.Column(db.String)
EUSOL_id = db.Column(db.String)
acc_name = db.Column(db.String)
reasons = db.Column(db.String)
genebank = db.Column(db.String)
def __init__(self, acc_ID,EUSOL_id,acc_name,reasons,genbank):
self.acc_ID = acc_ID
etc....................
我的 config.py
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'test.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
我的 __ init __。py :
import os
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
#from flask_migrate import Migrate
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
#migrate = Migrate(app, db)
from app import routes, models