如何使用FLASK读取预加载的SQLITE数据库

时间:2018-11-12 07:22:27

标签: flask

我第一次使用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  

0 个答案:

没有答案