Skip to content

Instantly share code, notes, and snippets.

@danjesus
Last active June 14, 2023 01:05
Show Gist options
  • Save danjesus/752ecd0145087e286c92d3a4147e48bd to your computer and use it in GitHub Desktop.
Save danjesus/752ecd0145087e286c92d3a4147e48bd to your computer and use it in GitHub Desktop.
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/")
def inicial():
return jsonify({"mensagem": "Olá turma!!!!"})
if __name__ == "__main__":
app.run(debug=True, host="localhost", port=8081)
# instalar o flask | pip install flask
# instalar o requests | pip install requests
# instalar o fauna | pip install fauna
from flask import Flask, jsonify, request
import requests
from fauna import fql
from fauna.client import Client
from fauna.encoding import QuerySuccess
from fauna.errors import FaunaException
DATABASE_KEY = "adicionar aqui a chave"
api_url = (
"https://api.sheety.co/20e6e67423392ddd3f7dc9eaf5caed47/servicos360Seguros/servicos"
)
zapier_url = (
"https://hooks.zapier.com/hooks/catch/11165692/3hdyjo8/"
)
api_cotacao_url = (
"https://economia.awedddsomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL"
)
ultima_cotacao = {}
app = Flask(__name__)
client = Client(
secret=DATABASE_KEY
)
def junta_texto(texto1, texto2, texto3):
return f"{texto1} {texto2} {texto3}"
@app.route("/")
def inicial():
response = requests.get(api_url)
return jsonify(response.json())
@app.route("/meu-texto")
def meu_texto():
turma = request.args.get("turma")
periodo = request.args.get("periodo")
meu_texto = request.args.get("meu_texto")
return jsonify({
"texto": meu_texto,
"turma": turma,
"periodo": periodo
})
@app.route("/juntar")
def juntar():
texto1 = request.args.get("texto1")
texto2 = request.args.get("texto2")
texto3 = request.args.get("texto3")
return junta_texto(texto1, texto2, texto3)
@app.route("/servicos", methods=["POST"])
def salvar_dados():
dados = request.get_json()
nome = dados["nome"]
email = dados["email"]
celular = dados["celular"]
consulta = fql('Servicos.create({ nome: "Dan", "email":"danper.jesus@gmail.com", "celular": "ahahahah", "novo_campo": "este é um novo campo" })')
res: QuerySuccess = client.query(consulta)
resultado_da_consulta = res.data
return jsonify({
"mensagem": "Cadastro realizado com sucesso!",
**resultado_da_consulta
}), 201
@app.route("/", methods=["PUT"])
def enviar():
dados = request.get_json()
print(dados["nome"])
print(dados["email"])
return jsonify({"mensagem": "Cadastro realizado com sucesso!"}), 201
@app.route("/minha-aula")
def minha_aula():
return "", 500
@app.route("/minha-aula2")
def minha_aula2():
return "", 401
@app.route("/cotacao")
def cotacao():
# cotacao é atualizada a cada 30 segundos
global ultima_cotacao
try:
response = requests.get(api_cotacao_url)
ultima_cotacao = response.json()
except:
if not ultima_cotacao:
ultima_cotacao = {
"USDBRL": {
"bid": "5.00"
},
"EURBRL": {
"bid": "6.00"
},
"BTCBRL": {
"bid": "100000.00"
}
}
return jsonify(ultima_cotacao)
@app.route("/servicos", methods=["DELETE"])
def deletar_servico():
id = request.args.get("id")
requests.delete(f"https://api.sheety.co/20e6e67423392ddd3f7dc9eaf5caed47/servicos360Seguros/servicos/{id}")
return jsonify({"mensagem": "Serviço deletado com sucesso!"})
@app.route("/servicos/<id>/<nome_do_outro>")
def get_servicos(id, nome_do_outro):
print(f"{api_url}/{id}")
print(api_url + "/" + id)
print("--------------------------------")
print(nome_do_outro)
response = requests.get(f"{api_url}/{id}")
return jsonify(response.json())
if __name__ == "__main__":
app.run(debug=True, host="localhost", port=8081)
# -*- coding: UTF-8 -*-
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
from flask_api import status
import logging
import pymysql
pymysql.install_as_MySQLdb()
# configuração do log
logging.basicConfig(level=logging.INFO)
# configuração do log do sqlalchemy
logging.getLogger("sqlalchemy.engine").setLevel(logging.INFO)
db = SQLAlchemy()
app = Flask(__name__)
# configuração do banco de dados
app.config[
"SQLALCHEMY_DATABASE_URI"
] = "mysql+mysqldb://bhub:bhub@0.tcp.sa.ngrok.io:10352/bhub"
db.init_app(app)
class Produto(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(60))
class ListaDeDesejos(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(60))
class ListaDeDesejosProduto(db.Model):
id = db.Column(db.Integer, primary_key=True)
id_produto = db.Column(db.Integer, nullable=False)
id_lista_de_desejos = db.Column(db.Integer, nullable=False)
with app.app_context():
db.create_all()
db.session.add(Produto(nome="Celular"))
db.session.add(Produto(nome="Notebook"))
db.session.add(Produto(nome="TV"))
db.session.add(Produto(nome="Fogão"))
db.session.add(Produto(nome="Geladeira"))
db.session.add(Produto(nome="Microondas"))
db.session.add(Produto(nome="Cadeira"))
db.session.add(Produto(nome="Mesa"))
db.session.commit()
@app.route("/")
def index():
return jsonify({"message": "Lista de desejos TI 360"})
@app.route("/produtos", methods=["GET"])
def listar_produtos():
produtos = Produto.query.all()
return jsonify([{"id": produto.id, "nome": produto.nome} for produto in produtos])
@app.route("/lista-de-desejos/<int:id>", methods=["GET"])
def listar_desejos(id):
desejo = ListaDeDesejos.query.filter(ListaDeDesejos.id == id).first()
return (
jsonify({"id": desejo.id, "nome": desejo.nome}),
status.HTTP_200_OK,
)
@app.route("/lista-de-desejos", methods=["POST"])
def criar_lista_de_desejos():
try:
dados = request.get_json()
nome = dados["nome"]
desejo = db.session.add(ListaDeDesejos(nome=nome))
# rollback
db.session.commit()
return (
jsonify({}),
status.HTTP_201_CREATED,
)
except KeyError:
return jsonify({"mensagem": "Dados inválidos"}), status.HTTP_400_BAD_REQUEST
@app.route("/lista-de-desejos/<int:id>/produto/<int:id_produto>", methods=["POST"])
def adicionar_produto(id, id_produto):
try:
lista_de_desejos = ListaDeDesejos.query.filter(ListaDeDesejos.id == id).first()
produto = Produto.query.filter(Produto.id == id_produto).first()
lista_de_desejos_produto = ListaDeDesejosProduto(
id_produto=produto.id, id_lista_de_desejos=lista_de_desejos.id
)
db.session.add(lista_de_desejos_produto)
db.session.commit()
return (
jsonify(
{
"id": lista_de_desejos_produto.id,
"id_produto": lista_de_desejos_produto.id_produto,
"id_lista_de_desejos": lista_de_desejos_produto.id_lista_de_desejos,
}
),
status.HTTP_201_CREATED,
)
except KeyError:
return jsonify({"mensagem": "Dados inválidos"}), status.HTTP_400_BAD_REQUEST
@app.route("/lista-de-desejos/<int:id>/produtos", methods=["GET"])
def listar_lista_de_desejos_produtos(id):
lista_de_desejos = ListaDeDesejos.query.get(id)
lista_de_desejos_produtos = ListaDeDesejosProduto.query.filter(
ListaDeDesejosProduto.id_lista_de_desejos == lista_de_desejos.id
).all()
lista_de_desejos_produtos_id = [
produto.id_produto for produto in lista_de_desejos_produtos
]
produtos = Produto.query.filter(Produto.id.in_(lista_de_desejos_produtos_id)).all()
return jsonify([{"id": produto.id, "nome": produto.nome} for produto in produtos])
@app.route("/lista-de-desejos/<int:id>", methods=["DELETE"])
def deletar_lista_de_desejos(id):
lista_de_desejos_produto = ListaDeDesejosProduto.query.get(id)
db.session.delete(lista_de_desejos_produto)
db.session.commit()
return {}
if __name__ == "__main__":
app.run(debug=True, host="localhost", port=8080)
from flask import Flask, jsonify, request
import requests
api_url = (
"https://api.sheety.co/20e6e67423392ddd3f7dc9eaf5caed47/servicos360Seguros/servicos"
)
zapier_url = (
"https://hooks.zapier.com/hooks/catch/11165692/3hdyjo8/"
)
api_cotacao_url = (
"https://economia.awedddsomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL"
)
ultima_cotacao = {}
app = Flask(__name__)
def junta_texto(texto1, texto2, texto3):
return f"{texto1} {texto2} {texto3}"
@app.route("/")
def inicial():
response = requests.get(api_url)
return jsonify(response.json())
@app.route("/meu-texto")
def meu_texto():
turma = request.args.get("turma")
periodo = request.args.get("periodo")
meu_texto = request.args.get("meu_texto")
return jsonify({
"texto": meu_texto,
"turma": turma,
"periodo": periodo
})
@app.route("/juntar")
def juntar():
texto1 = request.args.get("texto1")
texto2 = request.args.get("texto2")
texto3 = request.args.get("texto3")
return junta_texto(texto1, texto2, texto3)
@app.route("/salvar-dados", methods=["POST"])
def salvar_dados():
dados = request.get_json()
texto = dados["texto"]
email = dados["email"]
HTTP_CREATED = 201
requests.post(zapier_url, json=dados)
return jsonify({
"mensagem": "Cadastro realizado com sucesso!",
"dados": {
"texto": texto,
"email": email
}
}), HTTP_CREATED
@app.route("/", methods=["PUT"])
def enviar():
dados = request.get_json()
print(dados["nome"])
print(dados["email"])
return jsonify({"mensagem": "Cadastro realizado com sucesso!"}), 201
@app.route("/minha-aula")
def minha_aula():
return "", 500
@app.route("/minha-aula2")
def minha_aula2():
return "", 500
@app.route("/cotacao")
def cotacao():
# cotacao é atualizada a cada 30 segundos
global ultima_cotacao
try:
response = requests.get(api_cotacao_url)
ultima_cotacao = response.json()
except:
if not ultima_cotacao:
ultima_cotacao = {
"USDBRL": {
"bid": "5.00"
},
"EURBRL": {
"bid": "6.00"
},
"BTCBRL": {
"bid": "100000.00"
}
}
return jsonify(ultima_cotacao)
if __name__ == "__main__":
app.run(debug=True, host="localhost", port=80)
@danjesus
Copy link
Author

danjesus commented Jun 7, 2023

Pra instalar o flask
pip install flask

@danjesus
Copy link
Author

danjesus commented Jun 8, 2023

Para rodar no terminal
python api.py

@danjesus
Copy link
Author

Lembrem de instalar

pip install requests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment