Skip to content

An example of Django project with basic user functionality.

License

Notifications You must be signed in to change notification settings

egorsmkv/simple-django-login-and-register

Repository files navigation

Simple Django Login and Registration

An example of Django project with basic user functionality.

Screenshots

Log In Create an account Authorized page
Password reset Set new password Password change

Functionality

  • Log in
    • via username & password
    • via email & password
    • via email or username & password
    • with a remember me checkbox (optional)
  • Create an account
  • Log out
  • Profile activation via email
  • Reset password
  • Remind a username
  • Resend an activation code
  • Change password
  • Change email
  • Change profile
  • Multilingual: English, French, Simplified Chinese and Spanish

If you need dynamic URLs with the language code, check out https://github.com/egorsmkv/simple-django-login-and-register-dynamic-lang

Installing

Clone the project

git clone https://github.com/egorsmkv/simple-django-login-and-register
cd simple-django-login-and-register

Activate virtualenv

Create a virtualenv using uv

uv venv --python 3.13

source .venv/bin/activate

Install dependencies

uv sync

# Or using requirements files:

uv pip install -r requirements.txt

# in development mode
uv pip install -r requirements-dev.txt

Configure the settings (connection to the database, connection to an SMTP server, and other options)

  1. Edit source/app/conf/development/settings.py if you want to develop the project.

  2. Edit source/app/conf/production/settings.py if you want to run the project in production.

Apply migrations

python source/manage.py migrate

Running

On development server

Start the local web server:

python source/manage.py runserver

On production server

Collect static files:

python source/manage.py collectstatic

Development

Check & format code

This following commands sort imports and format the code:

ruff check --select I --fix
ruff format

Format templates:

git ls-files -z -- '*.html' | xargs -0 djade --target-version '5.1'