Code Monkey home page Code Monkey logo

flask_car_testdrive's Introduction

Flask_car_testdrive

Сайт для заказа автомобилей на тест-драйв.

Ссылка на гитхаб: https://github.com/Tework123/flask_car_testdrive/

Стартовая страница сайта:

Снимок экрана от 2023-07-27 06-49-10

Использованные технологии:

  • Flask Веб-фреймворк
  • Flask-login Создает сессии и куки
  • Flask-SQLAlchemy Позволяет работать с базой данных через python классы и функции
  • Flask-migrate Обеспечивает миграции базы данных
  • Flask-Mail Отправляет сообщения на почту
  • Pytest unit test
  • WTForms Проверка введенных данных в поля
  • Jinja2 Позволят создавать html шаблоны
  • PyJWT Создает jwt токен для использования api

Веб-приложение развернуто на VPS с помощью docker(из ветки main).

Docker-conteiners:

  • nginx
  • flask(gunicorn)
  • db(postgres)
  • pgbackups
  • certbot
  • redis(cash)

Функциональность сайта:

  • регистрация пользователей
  • восстановление пароля по почте
  • панель админа для добавления контента
  • заказ автомобиля
  • отправка сообщений
  • api для получение контента

Also:

  • unit test api
  • кеширование стартовой страницы

Схема базы данных:

image

Установка:

Создаем новую папку, создаем виртуальное окружение, активируем его.

Подключаем git к папке:

git init 
git clone https://github.com/Tework123/flask_car_testdrive.git

Заходим в папку с приложением flask:

cd flask_car_testdrive
cd flask_car_testdrive

Устанавливаем зависимости:

pip install -r requirements.txt

Создаем два .env файла, один в папке с приложением flask, другой в папке с docker-compose.

Заполняем .env файл примерно так:

SQLALCHEMY_DATABASE_URI_POSTGRES = 'postgresql://postgres:password@localhost:5432/name_db'
SQLALCHEMY_DATABASE_URI_POSTGRES_prod = 'postgresql://postgres:password@db:5432/name_db'
SQLALCHEMY_DATABASE_URI_POSTGRES_TEST = 'postgresql://postgres:password@localhost:5432/name_db_test'
POSTGRES_USER = 'postgres'
POSTGRES_PASSWORD = 'password'
POSTGRES_DB = 'name_db'

SECRET_KEY = 'asldkk12kelakfjafkj23jijraijfi23jappweovm1'
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USE_SSL = True
MAIL_USERNAME = '[email protected]'
MAIL_PASSWORD = 'sadasdkmvxvvqlwl'
ADMINS = '[email protected]'
ADMIN_LOGIN = '[email protected]'
ADMIN_PASSWORD = 'admin'
REDIS_URL_LOCAL = 'redis://127.0.0.1:6379'
REDIS_URL_server = 'redis://redis:6379'
REDIS_PASSWORD = 'mzxcvm213zmvdsf@k3ll1'

Локально поднимаем postgres, redis.

В папке с flask приложением запускаем локальный сервер:

flask run

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.