Golang + Vue + SQLite #1
Якщо з якихось причин Вам не подобається Python, Flask,- ось приклад web-додатка Golang + Vue. Це абсолютна "калька" того прикладу, що був раніше зроблений на Python за допомогою Flask.
Для адаптування фронтенду, написаного на Vue, до нового бекенду на Golang знадобились мінімальні корекції. Так, абсолютно без змін фронтенду не обійшлось. Бо Golang є сильно типізованою мовою програмування і накладає деякі обмеження і ми вже не можемо робити витівки, які дозоляв слабо типізований Python.
До того ж при написанні бекенду на Golang був використаний web framework Fiber, в якого теж є деякі домовленості, які змусили трохи підкоригувати фронтенд, щоб уникнути "збочень" в написанні коду.
У цьому прикладі:
- Використана база даних SQLite. У наступному прикладі буде PostgreSQL ;)
- Для роботи з БД використовується ORM gorm
- Принцип роботи з базою - CRUD, реалізована пагінація, пошук, сортування
- Аутентифікація користувачів з використанням JWT (github.com/dgrijalva/jwt-go)
- OAuth. Також аутентифікація користувачів можлива через Facebook / Google Account (дивись як налаштувати: https://blog.avislab.com/flask-vue/example9/ налаштування в файлі oauth/config.go)
- Авторизація (права на доступ до окремих моделей роздаються так само, як і в попередніх прикладах. Дивись файл access.json)
- AutoMigrate - виконується при старті додатка, а не окремою командою як в прикладі на Python
- Завантаження файлів
Як переглянути приклад?
Варіант 1 (Не потребує встановлення Golang та модулів):
- Завантажте архів і розпакуйте його в будь яку директорію на Вашому комп'ютері.
- Запустіть бінарний файл main.
- Відкрийте браузер за посиланням http://localhost:5000/frontend/
Варіант 2 (потребує встановленого Golang):
- Завантажте архів і розпакуйте його в будь яку директорію на Вашому комп'ютері.
- У директорії з файлом main.go виконайте команду go mod tidy
- Запустіть додаток командою go run ./main.go
- Відкрийте браузер за посиланням http://localhost:5000/frontend/
login: admin
password: admin
Приємного перегляду.
Tags
bme280 bmp280 gps mpu-6050 options stm32 ssd1331 ssd1306 eb-500 3d-printer soldering tim mpu-9250 dma watchdog piezo exti web raspberry-pi docker ngnix solar bluetooth foc html css brushless flask dc-dc capture gpio avr rs-232 mpx4115a atmega mongodb st-link barometer pwm nvic git java-script programmator dht11 hih-4000 pmsm encoder max1674 smd sensors rtc adc lcd motor timer meteo examples i2c usb flash sms rfid python esp8266 servo books bldc remap eeprom bkp battery ethernet uart usart displays led websocket nodemcu wifi
Архіви