Tesis 1.0.0
Loading...
Searching...
No Matches
settings.py
Go to the documentation of this file.
1"""
2Django settings for Food_ISPC project.
3
4Generated by 'django-admin startproject' using Django 4.2.
5
6For more information on this file, see
7https://docs.djangoproject.com/en/4.2/topics/settings/
8
9For the full list of settings and their values, see
10https://docs.djangoproject.com/en/4.2/ref/settings/
11"""
12
13from pathlib import Path
14import os
15from dotenv import load_dotenv
16from datetime import timedelta
17
18# Cargar variables de entorno
19load_dotenv()
20
21# Build paths inside the project like this: BASE_DIR / 'subdir'.
22BASE_DIR = Path(__file__).resolve().parent.parent
23
24
25# Quick-start development settings - unsuitable for production
26# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
27
28# SECURITY WARNING: keep the secret key used in production secret!
29SECRET_KEY = 'django-insecure-lq50bruj9vl$-l1#drn=*iof2z%f%nl!j05(ce#*s$e2xhixc='
30
31# SECURITY WARNING: don't run with debug turned on in production!
32DEBUG = True
33
34ALLOWED_HOSTS = ['backmobile1.onrender.com', 'localhost', '127.0.0.1']
35
36# CORS allowed
37CORS_ALLOWED_ORIGINS = [
38 "https://example.com",
39 "http://localhost:4200",
40 "https://ispcfood.netlify.app",
41 "https://moispc.github.io"
42]
43
44# Logging configuration
45LOGGING = {
46 'version': 1,
47 'disable_existing_loggers': False,
48 'formatters': {
49 'verbose': {
50 'format': '{levelname} {asctime} {module} {message}',
51 'style': '{',
52 },
53 'simple': {
54 'format': '{levelname} {message}',
55 'style': '{',
56 },
57 },
58 'handlers': {
59 'console': {
60 'level': 'INFO',
61 'class': 'logging.StreamHandler',
62 'formatter': 'simple',
63 },
64 },
65 'loggers': {
66 'django': {
67 'handlers': ['console'],
68 'level': 'INFO',
69 'propagate': True,
70 },
71 'appCART': {
72 'handlers': ['console'],
73 'level': 'INFO',
74 'propagate': True,
75 },
76 },
77}
78
79# Application definition
80
81INSTALLED_APPS = [
82 'django.contrib.admin',
83 'django.contrib.auth',
84 'django.contrib.contenttypes',
85 'django.contrib.sessions',
86 'django.contrib.messages',
87 'django.contrib.staticfiles',
88 'rest_framework',
89 'rest_framework.authtoken',
90 "corsheaders",
91 'appUSERS.apps.AppusersConfig',
92 'appFOOD.apps.AppfoodConfig',
93 'appCART.apps.AppcartConfig',
94]
95
96MIDDLEWARE = [
97 "corsheaders.middleware.CorsMiddleware",
98 "django.middleware.common.CommonMiddleware",
99 'django.middleware.security.SecurityMiddleware',
100 'django.contrib.sessions.middleware.SessionMiddleware',
101 'django.middleware.common.CommonMiddleware',
102 'django.middleware.csrf.CsrfViewMiddleware',
103 'django.contrib.auth.middleware.AuthenticationMiddleware',
104 'django.contrib.messages.middleware.MessageMiddleware',
105 'django.middleware.clickjacking.XFrameOptionsMiddleware',
106]
107
108CORS_ALLOW_CREDENTIALS = True
109
110ROOT_URLCONF = 'Food_ISPC.urls'
111
112TEMPLATES = [
113 {
114 'BACKEND': 'django.template.backends.django.DjangoTemplates',
115 'DIRS': [],
116 'APP_DIRS': True,
117 'OPTIONS': {
118 'context_processors': [
119 'django.template.context_processors.debug',
120 'django.template.context_processors.request',
121 'django.contrib.auth.context_processors.auth',
122 'django.contrib.messages.context_processors.messages',
123 ],
124 },
125 },
126]
127
128WSGI_APPLICATION = 'Food_ISPC.wsgi.application'
129
130
131# Database
132# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
133
134DATABASES = {
135 'default': {
136 'ENGINE': 'django.db.backends.mysql',
137 'NAME': 'railway',
138 'USER': 'root',
139 'PASSWORD': 'BGVqserZKnEpylRlbhwyQcgSmmoocqAt',
140 'HOST': 'shortline.proxy.rlwy.net',
141 'PORT': '45482',
142 'OPTIONS': {
143 'sql_mode': 'traditional',
144 }
145
146
147
148 }
149}
150
151
152# Password validation
153# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
154
155AUTH_PASSWORD_VALIDATORS = [
156 {
157 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
158 },
159 {
160 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
161 },
162 {
163 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
164 },
165 {
166 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
167 },
168]
169
170
171# Internationalization
172# https://docs.djangoproject.com/en/4.2/topics/i18n/
173
174LANGUAGE_CODE = 'en-us'
175
176TIME_ZONE = 'UTC'
177
178USE_I18N = True
179
180USE_TZ = True
181
182
183# Static files (CSS, JavaScript, Images)
184# https://docs.djangoproject.com/en/4.2/howto/static-files/
185
186STATIC_URL = 'static/'
187
188# Default primary key field type
189# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
190
191DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
192
193AUTH_USER_MODEL = 'appUSERS.Usuario'
194
195REST_FRAMEWORK = {
196 'DEFAULT_AUTHENTICATION_CLASSES': (
197 'rest_framework_simplejwt.authentication.JWTAuthentication',
198 ),
199}
200
201SIMPLE_JWT = {
202 'USER_ID_FIELD': 'id_usuario',
203 'ACCESS_TOKEN_LIFETIME': timedelta(days=36500),
204 'REFRESH_TOKEN_LIFETIME': timedelta(days=36500),
205}
206
207
208DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'
209
210CLOUDINARY_STORAGE = {
211 'CLOUD_NAME': "djp80kwaj", # Reemplaza por tu cloud name real
212 'API_KEY': "285359299675698", # Reemplaza por tu API key real
213 'API_SECRET': "CILwUfSuiDsJ977SrrCvPQcgJz4", # Reemplaza por tu API secret real
214}