Создание базы данных через колбу в postgreSQL - PullRequest
0 голосов
/ 07 октября 2019

Я пробую учебное пособие, чтобы установить соединение с базой данных при помощи flask, и базу данных postgreSQL с помощью json.

Это строки кода в models.py

from app import db
from sqlalchemy.dialects.postgresql import JSON

class Result(db.Model):
    _tablename_= 'results'

    id =db.Column(db.Integer, primary_key=True)
    url = db.Column(db.String())
    result_all = db.Column(JSON)
    result_no_stop_words = db.Column(JSON)

    def __init__(self, url, result_all, result_no_stop_words):
        self.url = url
        self.result_all = result_all
        self.result_no_stop_words = result_no_stop_words

    def __repr__(self):
        return '<id {}>'.format(self.id)

Код в конфигурации.py

import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
    DEBUG = False
    TESTING = False
    CSRF_ENABLED = True
    SECRET_KEY = 'this-really-needs-to-be-changed'
    SQLALCHEMY_DATABASE_URI = os.environ['postgresql://postgresql:bat123@localhost/DatabaseFirst']

class ProductionConfig(Config):
    DEBUG = False

class StagingConfig(Config):
    DEVELOPMENT = True
    DEBUG = True

class DevelopmentConfig(Config):
    DEVELOPMENT = True
    DEBUG = True

class TestingConfig(Config):
    TESTING = True

Код в manage.py

import os
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

from app import app, db

app.config.from_object(os.environ['APP_SETTINGS'])

migrate = Migrate(app, db)
manager = Manager(app)

manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

код в app.py

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

from models import Result

@app.route('/')
def hello():
    return "Hello World!"

@app.route('/<name>')
def hello_name(name):
    return "Hello {}!".format(name)


if __name__ == "__main__":
    app.run()

Я хочу знать перед запуском этого кода строки, еслибаза данных должна быть создана в postgreSQL, наедине с таблицей и столбцами,
или с этими строками кода, создающими таблицу, и столбцами в postgreSQL

class Result(db.Model):
    _tablename_= 'results'

    id =db.Column(db.Integer, primary_key=True)
    url = db.Column(db.String())
    result_all = db.Column(JSON)
    result_no_stop_words = db.Column(JSON)

По сути, я хочу знать функцию или цель, выполняемуювышеуказанный набор строк кода (5 строк кода)

Ответы [ 2 ]

1 голос
/ 07 октября 2019

manager.add_command('db', MigrateCommand) эта часть добавляет команду с именем db, чтобы вы могли запустить flask db, которая создаст таблицы и столбцы.

Примечание: чтобы сначала использовать эту команду, необходимо определить FLASK_APP в переменных среды.

Например:

export FLASK_APP=app.py
flask db

Также модель

class Result(db.Model): _tablename_= 'results' id =db.Column(db.Integer, primary_key=True) url = db.Column(db.String()) result_all = db.Column(JSON) result_no_stop_words = db.Column(JSON)

Это определяет представление класса таблицы. Это не создаст таблицу в базе данных, это просто представление. MigrationCommand отвечает за создание таблиц в базе данных.

0 голосов
/ 11 октября 2019
class Result(db.Model):
    __tablename__ = 'results'

    id =db.Column(db.Integer, primary_key=True)

class Result(db.Model):

Эта строка кода создает экземпляр класса Result в приложении Flask и передает эти значения в базу данных postgreSQL иликакую бы базу данных вы не использовали.

__tablename__ = 'results':

Здесь мы создаем таблицу с результатами в базе данных в моем случае DatabaseFirst

id = db.Column(db.Integer, primary_key=True):

Здесь мы создаем столбец с именем id, в нашей таблице с именем results, который может содержать только данные целочисленного типа и idСтолбцу присваивается первичный ключ таблицы результатов.

Здесь с помощью трех строк кода, о которых я упоминал выше, таблицы и столбцы базы данных создаются с помощью приложения Flask, и мы можем видеть соответствующие результаты в базе данных postgreSQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...