wiki:django_setup
Różnice
Różnice między wybraną wersją a wersją aktualną.
Nowa wersja | Poprzednia wersja | ||
wiki:django_setup [2021/01/23 12:06] – lukasz | wiki:django_setup [2023/03/26 15:40] (aktualna) – lukasz | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Konfiguracja Django ====== | ====== Konfiguracja Django ====== | ||
- | Na przykładzie Fedory | + | Na przykładzie Fedory (na CentOS jest tak samo) oraz MariaDB. Nazwę użytkownika w bazie danych najlepiej mieć taką samą, jak w / |
==== Baza danych ==== | ==== Baza danych ==== | ||
< | < | ||
- | # sudo dnf install mariadb mariadb-server mariadb-devel | + | # sudo dnf install mariadb mariadb-server mariadb-devel python3-devel |
# sudo systemctl start mariadb | # sudo systemctl start mariadb | ||
# sudo mysql_secure_installation | # sudo mysql_secure_installation | ||
Linia 49: | Linia 49: | ||
' | ' | ||
' | ' | ||
- | ' | + | ' |
' | ' | ||
' | ' | ||
Linia 59: | Linia 59: | ||
# python manage.py runserver | # python manage.py runserver | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Django i replikacja w MariaDB ==== | ||
+ | |||
+ | Przy założeniu, | ||
+ | * primary - Rear/Write | ||
+ | * replica - ReadOnly | ||
+ | który został opisany na [[wiki: | ||
+ | |||
+ | W katalogu z plikiem manage.py utworzyć plik dbroute.py o treści: | ||
+ | |||
+ | < | ||
+ | import random | ||
+ | from django.conf import settings | ||
+ | |||
+ | class ReplicationRouter: | ||
+ | def db_for_read(self, | ||
+ | """ | ||
+ | Randomly pick a database to read from | ||
+ | """ | ||
+ | return random.choice([key for key in settings.DATABASES]) | ||
+ | |||
+ | def db_for_write(self, | ||
+ | """ | ||
+ | Always send write queries to the master database. | ||
+ | """ | ||
+ | return ' | ||
+ | |||
+ | def allow_relation(self, | ||
+ | """ | ||
+ | This isn't really applicable for this use-case. | ||
+ | """ | ||
+ | return True | ||
+ | |||
+ | def allow_migrate(self, | ||
+ | """ | ||
+ | Only allow migration operations on the master database, just in case. | ||
+ | """ | ||
+ | if db == ' | ||
+ | return True | ||
+ | return None | ||
+ | </ | ||
+ | |||
+ | W pliku settings.py należy dodać linijkę | ||
+ | |||
+ | DATABASE_ROUTERS = [' | ||
+ | |||
+ | oraz zmienić domyślny słownik DATABSES z Sqlite3 na Marię: | ||
+ | |||
+ | < | ||
+ | DATABASES = { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | }, | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | }, | ||
+ | } | ||
+ | </ | ||
+ | |||
wiki/django_setup.1611400006.txt.gz · ostatnio zmienione: 2022/08/18 11:44 (edycja zewnętrzna)