Gente... Criei uma aplicação Flask bem simples e utilizei o SQLITE 3, só que usei de uma forma um pouco diferente, sem o SQL ALCHEMY. Só que ele me gerou um documento "banco.db" dentro do diretório do projeto. Localmente roda muito bem. Minha dúvida é, o que fazer na hora do Deploy? No Django tempos o comando migrate e makemigrations que sobe todas as tabelas criadas pro servidor em si.
E se o banco tiver senha?
Como eu faria para configurar isso no servidor?
Trecho do código SQL:
class ListaUser:
def __init__(self,id,user,pw):
self.id = id
self.user = user
self.pw = pw
class Database():
def __init__(self,db_name):
self.db_name = db_name
def iniciaBanco(self):
con = sqlite3.connect(self.db_name)
print(self.db_name)
return con
class User():
def __init__(self,db_name):
self.db_name = db_name
self.con = sqlite3.connect(self.db_name)
self.cur = self.con.cursor()
def createTable(self):
self.con.cursor().execute(
'CREATE TABLE IF NOT EXISTS tb_usuario (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\
user VARCHAR(15) NOT NULL,\
password VARCHAR(100) NOT NULL)')
def insertUser(self,user,pw):
self.user = user
self.pw =pw
self.con.cursor().execute("INSERT INTO 'tb_usuario'\
(user,password) VALUES ('{}','{}')".format(self.user,self.pw))
self.con.commit()
self.cur.close()
self.con.close()
Trecho das ROTAS:
from flask import Flask, render_template,request,redirect,session,flash
from flask.globals import g
from database.models import *
#Application config
app = Flask(__name__,template_folder='../assets/templates',static_folder='../assets/static')
app.secret_key='segredo'
db = Database('dao.db')
@app.route("/cadastro", methods=['POST'])
def cadastro():
""" Rotas de acesso ao banco de autenticação do portal"""
if request.method=='POST':
user = request.form['home_user']
pw = request.form['home_password']
if user =='' or pw=='':
return redirect('/')
else:
db_user =User(db.db_name)
db_user.createTable()
db_user.insertUser(user,pw)
return redirect('/views')
else:
return redirect('/')
Segue o git: https://github.com/Raul-Pinheiro/projetoPessoal-appEmFlask