breduin / sqlite_bug

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Баг SQLite

Код с использованием фреймворка Джанго.

SQLite

см. storage/views.py

При создании объекта FileUplode, а которого имеется поле name = models.CharField, строковая переменная, присваиваемая name, обрезается с конца на один символ, причём при условии, что это символ - "t". Если строка заканчивается на другой символ, x или d, то он не обрезается.

Весь алфавит не проверял.

Postgres

всё работает, как ожидается, строка не режется.

Как установить

Код является свободным, ты можешь установить его и пользоваться. Для этого тебе понадобится:

  1. Установить Python 3.10+. см. как установить (англ.), а здесь для Debian-based (рус.).

  2. Установить переменные окружения (см. ниже).

Далее, скачай репозиторий к себе, установи и активируй виртуальное окружение:

    python3 -m venv env
    source env/bin/activate

установи необходимые библиотеки, указанные в файле requirements.txt:

    pip install -r requirements.txt

перейди в папку проекта, запусти миграции, затем проект:

    ./manage.py migrate
    ./manage.py runserver

Открой браузер и укажи в адресной строке:

http://127.0.0.1:8000/upload/

Переменные окружения

Для улучшения уровня безопасности, когда будешь размещать сайт в общем доступе, сделай файл .env и размести его в папке настроек проекта project. В этом файле укажи:

  • секретный ключ Django;
  • данные для подключения к БД
  • DEBUG и ALLOWED_HOSTS
  • настройки почтового сервера

Вот так должен выглядеть твой .env файл:

SECRET_KEY='длинная строка символов'
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,[::1]
DB_URL=postgres://user_name:password@host:port/db_name

или

DB_URL=sqlite:////<path to db>/db.sqlite3

About


Languages

Language:JavaScript 53.6%Language:CSS 41.0%Language:Python 4.1%Language:HTML 1.3%