Last active
June 14, 2023 01:05
-
-
Save danjesus/752ecd0145087e286c92d3a4147e48bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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":"[email protected]", "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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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:[email protected]: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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Lembrem de instalar
pip install requests