Рубрики
Без рубрики

Быстро построить прототипы с вашей командой, используя Repl.it, Airtable и Sequin

Repl. Это становится популярным способом для групп разработчиков быстро создавать приложения вместе. Это… Tagged с помощью Python, SQL, Airtable, Repit.

Repl.it становится популярным способом для групп разработчиков быстро создавать приложения вместе. Это позволяет командам сотрудничать в режиме реального времени из любого веб-браузера. По сути, это мгновенная IDE, поддерживающая более 50 языков программирования, поэтому он отлично подходит для прототипирования, хакатонов, новых стартапов или побочных проектов.

Пары Repl.it с возможностями прототипирования Airtable и Sequin могут помочь командам двигаться еще быстрее. Sequin Повторяет данные Airtable в базу данных Postgres, предоставляя вам простой интерфейс Admin Airtable с мощностью и скоростью Postgres.

В этом уроке вы узнаете, как построить каталог продукта, используя Airtable, Sequin и Repit. Вы создадите веб -приложение Python Flask, которое работает в Repl.it, чтобы вызвать вашу базу данных Postgres. Эта установка идеально подходит для команд, которые хотят быстро построить приложение электронной коммерции или подтверждение концепции, которая затем может превратиться в масштабируемый магазин, готовый к производству.

Вы можете перейти к окончательному результату этого урока, разбив это Repl →

Настройка Airtable

Для этого проекта мы собираемся использовать Шаблон каталога продукта Доступно от Airtable. Нажмите «Использовать шаблон», чтобы импортировать его в свою учетную запись Airtable.

Этот шаблон включает в себя базу с 7 таблицами:

  • Мебель
  • Продавцы
  • Клиенты
  • Клиентские заказы
  • Заказ строки
  • Дизайнеры
  • Контакты продавца

Для целей этого урока мы сосредоточимся на Мебель , таблица, которая содержит продукты, которые вы хотите показать в своем приложении.

Как видите, вы можете быстро искать, добавлять, редактировать или удалять элементы в Airtable, не написав кода. Это позволяет вам очень быстро итерации по модели данных, когда вы выясняете, какие данные вам нужны для вашего каталога продукта.

К сожалению, Airtable имеет некоторые ограничения. Во -первых, он не предоставляет гранулированные разрешения для ресурсов на вашей базе, поэтому вам придется использовать AISTABLE API для справки. Во -вторых, Airtable ограничивает вас до 5 запросов в секунду, что делает его API не идеальным для производственных рабочих нагрузок.

В следующих разделах вы преодолеете эти ограничения, подключив базу Airtable к блесткам для создания приложения Python.

Setup Sequin

С готовым атмосферным базой, подключите Airtable к Sequin, чтобы получить базу данных PostgreSQL, синхронизированную с данными AirTable.

Сначала Создайте новую учетную запись Sequin Анкет

Вставьте свой Airtable API -ключ в Добавить ключ раздел. Нажмите на Где мне это найти? Ссылка, если вам нужна помощь в поиске ключа API в вашем Airtable Account .

Далее выберите Каталог продукта База, которую вы только что добавили в свое рабочее пространство Airtable. По умолчанию все таблицы синхронизируются.

Нажмите Начните синхронизировать Анкет Это немедленно подключится к вашему атмосферу и начнет синхронизировать базу. Небольшая база, подобная шаблонному проекту, который мы используем, должна синхронизировать менее 30 секунд.

После этого вам представлены учетные данные для вашей базы данных, как показано ниже:

Теперь вы готовы построить масштабируемое нанесение каталога продуктов на верхней части вашей атмосферной базы без Ставка с встроенными пределами скорости Airtable.

Настройка Repl.it

С помощью готовой базы данных вы можете создать веб -приложение Python, которое будет отображать ваши продукты пользователям.

Сначала Подпишитесь на Repl.it Если у вас еще нет учетной записи.

Создайте новую реплику, нажав на синий + Новая реплика В верхней части левой части панели приборной панели.

Выберите Многостраничный шаблон колбы В селекторе шаблонов начинается с предварительно созданного шаблона, который включает пример кода. Назовите новую Repl ProductCatalog :

Repl. Это приведет вас в их среду разработки на основе браузеров, где вы можете начать редактирование кода.

Бэкэнд Python

С помощью настройки Reply вы можете добавить информацию о подключении к базе данных в приложение Python.

Во -первых, настройте зависимости для вашего приложения.

Это приложение будет использовать SQLalchemy (Flask_sqlalchemy) Чтобы подключиться к базе данных, поэтому вы должны добавить ее и PG8000 к Требования.txt файл. Это гарантирует, что необходимые драйверы установлены для подключения к вашим базам данных Sequin PostgreSQL. Вам также нужен Python Запросы Библиотека, чтобы позвонить в Airtable API, чтобы удалить продукт.

Теперь добавьте переменные среды (a.k.a секреты in repit jargon ), чтобы хранить ваши учетные данные API с блестками и Airtable. Для этого выберите Секреты Вкладка на правой панели. Создайте новый секрет. Для ключ Введите DB_URL и для значения введите строку подключения, которую Sequin предоставил ранее. Затем нажмите на Добавить новый секрет кнопка:

Вы можете легко получить строку для вашей базы данных Sequin, открыв Консоль с блестками и щелкнуть Подключить кнопка на вашем Каталог продукта ресурс).

Повторите эти шаги, чтобы добавить секреты для вашего airtable_api_key (который вы Получено ранее ) и ваш airtable_base_id (который вы можете найти в Airtable API Docs , выбрав базу).

Теперь вы готовы добавить код приложения. Замените код в шаблоне main.py со следующим:

from flask import Flask, render_template, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import requests
import json
import os

web_site = Flask(__name__)
web_site.config[
    'SQLALCHEMY_DATABASE_URI'] = os.environ['db_url']
db = SQLAlchemy(web_site)

Этот первый набор кода создает приложение Flask и настраивает SQLalchemy для подключения к вашей базе данных Sequin (следовательно, os.environ ['db_url'] ).

Далее вам нужен модельный класс. Каждый атрибут на модели соответствует поле в вашей базе Airtable, и вы будете использовать его для запроса базы данных Postgres в каждой конечной точке вашего приложения.

Добавьте следующее к своему main.py файл:

...
class Furniture(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    unit_cost = db.Column(db.Float, unique=False, nullable=False)
    in_stock = db.Column(db.Boolean, unique=False, nullable=True)
    name = db.Column(db.String(100), unique=True, nullable=False)
    images = db.Column(db.ARRAY(db.String), unique=False, nullable=False)
    description = db.Column(db.String(400), unique=False, nullable=False)

    def __repr__(self):
        return '' % self.name

Флэста использует Маршруты Разделить различные страницы на вашем сайте. В этом случае добавьте три маршрута в свой main.py файл.

Один, чтобы отобразить все продукты:

@web_site.route('/')
def index():
  products = Furniture.query.all()
  return render_template('index.html',products=products)

Другой, чтобы отобразить один продукт:

@web_site.route('/product/')
def view_product(productid):
  product = Furniture.query.filter_by(id=productid).first()
  return render_template('product.html', product=product)

И третий, чтобы удалить один продукт. Для этой конечной точки вы позвоните в Proxy API Sequin Airtable, который, в свою очередь, вызывает веб -сервис Airtable. Seercein только для чтения, поэтому любые изменения данных должны быть выполнены через API Airtable с использованием Sequin в качестве Прокси Анкет

@web_site.route('/delete/')
def delete_product(productid):
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer {0}'.format(os.environ['airtable_api_key'])
    }
    response = requests.delete(
        "https://proxy.sequin.io/api.airtable.com/v0/{base_id}/Furniture/{product_id}".format(
            base_id = os.environ['airtable_base_id'],
            product_id = productid),
        headers=headers)
    print(response.content)
    return redirect(url_for('index'))

Наконец, добавьте следующую строку в конце вашего main.py Файл для запуска WebServer на Localhost: 8080 :

if __name__ == '__main__':
  web_site.run(host='0.0.0.0', port=8080)

Теперь, когда ваше приложение Python может подключаться к базе данных Sequin и AIPI AINTABLE, вы можете перейти к презентационной части вашего приложения.

HTML -фронт

Для фронта вы будете использовать Jinja2 в качестве простого языка шаблона для вставки объектов Python и петли в HTML. Для стиля мы возьмем ярлык, используя Bootstrap5 Анкет

На домашней странице вашего приложения будет отображаться список продуктов в таблице и включать ссылку для просмотра каждого более подробно на странице одного продукта. Замените пример кода в вашем index.html Файл со следующим:




  
    Product Catalog from Airtable
    
    
    
    
  
  
    

Welcome to this product catalog demo from Airtable

{% for product in products %}
{{product.name}}
Name: {{product.name}}
Unit cost: $ {{product.unit_cost}}


{% endfor %}

Другая страница, которую вам нужно создать, – это страница единственного продукта. Создайте новый HTML -файл с именем Product.html и добавьте следующее:




  
    Product
    
    
    
    
  
  
    

{{product.name}}

{{product.description}}

{% for image in product.images %} image {% endfor %}

Unit cost: $ {{product.unit_cost}}

Is in stock?: {{product.in_stock}}

Back Delete

В этом представлении показано больше деталей продукта и включает в себя Удалить Кнопка, которая выполнит удаление продукта из базы данных Airtable и Sequin. В своем последнем выпуске вы, вероятно, захотите скрыть Удалить Кнопка для пользователей, не являющихся несаутентированными, но этот проект предназначен для демонстрации создания простого прототипа.

Развертывание вашего приложения

Ваше веб -приложение готово. Нажмите Запустить кнопка для развертывания:

Одним щелчком вы разверните приложение. Как это круто!

А если вы быстрые, вы увидите, что при нажатии кнопки «Удалить» – продукт немедленно удаляется из Airtable и базы данных Sequin:

Вывод

В этом уроке вы видели это всего за несколько минут, вы можете создать и развернуть каталог рабочего продукта. Использование Airtable в качестве структурированного источника данных и Sequin Чтобы разоблачить ваши данные через масштабируемую базу данных PostgreSQL, теперь вы можете написать необработанный SQL или использовать ORM для извлечения продуктов. Развертывая приложение Python Flask на Repl.it, вы можете быстро поработать над этим приложением с вашей командой без Необходимость делать много конфигурации окружающей среды.

Написано для блеска по Néstor Campos

Оригинал: “https://dev.to/syncinc/rapidly-build-prototypes-with-your-team-using-repl-it-airtable-and-sync-inc-f0f”