Eatpository > settings.

"""
Django settings for Eatpository project.

Generated by 'django-admin startproject' using Django 4.0.6.

For more information on this file, see
<https://docs.djangoproject.com/en/4.0/topics/settings/>

For the full list of settings and their values, see
<https://docs.djangoproject.com/en/4.0/ref/settings/>
"""
from datetime import datetime
import os
import json
from django.core.exceptions import ImproperlyConfigured
from pathlib import Path
from .secrets import *

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
ROOT_DIR = os.path.dirname(BASE_DIR)
# Eatpository/backend/eatpository/settings.py
# BASE_DIR=Eatpository/backend

# Quick-start development settings - unsuitable for production
# See <https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/>

# SECURITY WARNING: keep the secret key used in production secret!

SECRET_KEY = MY_SECRET_KEY

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # CORS
    'corsheaders',

    # DRF
    'rest_framework',
    'rest_framework.authtoken',

    # rest_auth
    'rest_auth',

    # apps
    'accounts',
    'stores',
    'information',
]

# Auth 유저 모델로 accounts의 User를 쓰겠다는 의미
AUTH_USER_MODEL = 'accounts.User'

# DRF auth settings - Token으로 User 찾아오기
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ]
}
JWT_SECRET_KEY = MY_SECRET_KEY
JWT_ALGORITHM = 'HS256'

MIDDLEWARE = [
    # CORS 세팅
    'corsheaders.middleware.CorsMiddleware',
    #'django.middleware.common.CommonMiddleware', #새로 추가
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

# CORS 세팅 (CORS_ORIGIN_WHITELIST, CORS_ALLOW_CREDENTIALS)
CORS_ORIGIN_WHITELIST = ['<http://127.0.0.1:3000>', '<http://localhost:3000>']
CORS_ALLOW_CREDENTIALS = True
#CORS_ALLOW_ALL_ORIGINS=True #교체

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'PATCH',
    'POST',
    'PUT',
)

ROOT_URLCONF = 'Eatpository.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'Eatpository.wsgi.application'

# Database
# <https://docs.djangoproject.com/en/4.0/ref/settings/#databases>

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

# Password validation
# <https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators>

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

# Internationalization
# <https://docs.djangoproject.com/en/4.0/topics/i18n/>

# 언어 시간 - 한국 세팅 (LANGUAGE_CODE, TIME_ZONE)
LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

USE_I18N = True

USE_TZ = True

# Static files (CSS, JavaScript, Images)
# <https://docs.djangoproject.com/en/4.0/howto/static-files/>

# STATIC_URL = '/static/'
# STATICFILES_DIRS=[
#     os.path.join(BASE_DIR,'static','images')
# ]
# # STATIC_ROOT 세팅
# STATIC_ROOT = os.path.join(BASE_DIR, 'static') ## 모든 정적 파일들을 한 곳으로 모아둘 경로

STATIC_URL = '/static/'

STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/', 'selenium_images'),
    # os.path.join(BASE_DIR, 'static', 'images'),
]

# STATIC_ROOT 세팅
# STATIC Files들을 어디에 집합시킬 것인지 결정
# 배포를 할 때 만들어둔 static 파일들을 총합해서 배포한다.

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# Default primary key field type
# <https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field>

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

AUTH_USER_MODEL = "accounts.Users"

ROOT_URLCONF = 'Eatpository.urls'

Eatpository > urls.py

"""Eatpository URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    <https://docs.djangoproject.com/en/4.0/topics/http/urls/>
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from Eatpository import settings
import statistics
from django.contrib import admin
from django.urls import path, include
from accounts import views
###새로운 코드###
#from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token, refresh_jwt_token

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home, name='home'),
    path('users/', include('accounts.urls')),
    path('stores/', include('stores.urls')),
    path('information/', include('information.urls')),
]
<head>
    <meta charset="utf-8">
</head>
검색된 식당 이름 : {{info.store_name}} <br>
검색된 식당의 주소 : {{info.address}} <br><br>

<h1>식당 정보 저장을 원하는 경우</h1><br>
<form method = "POST" action = "<http://127.0.0.1:8000/stores/save/>">
    {% csrf_token %}
    {% load static %}

    <h1 >밑에꺼 건드리지 마 </h1>

    <textarea name="info">{{info}}</textarea> 
    <textarea name="image">{{image}}</textarea> 
    <!-- <input type="text" value = {{info.store_name}} name="store_name">
    <input type="text" value = {{info.address}} name="address">
    <input type="text" value = {{info.longitude}} name="longitude">
    <input type="text" value = {{info.latitude}} name="latitude">
    <input type="text" value = {{info.phone_number}} name="phone_number"> -->
    <br><br>넣아줘야 함<br>
    <input type="text" value = "영업 시간" name="time">
    <input type="text" value = "메뉴" name="main_menu">
    <textarea name="comment">식당에 대한 에디터 comment</textarea> 
    <select name="user">
        <option value="admin1">admin1</option>
        <option value="admin2">admin2</option>
        <option value="admin3">admin3</option>
        <option value="admin4">admin4</option>
    </select>
    <select name="category">
        <option value="한식">한식</option>
        <option value="중식">중식</option>
        <option value="일식">일식</option>
        <option value="양식">양식</option>
    </select>

    <select name="image1">
        <option value="1">이미지1</option>
        <option value="2">이미지2</option>
        <option value="3">이미지3</option>
        <option value="4">이미지4</option>
        <option value="5">이미지5</option>
        <option value="6">이미지6</option>
        <option value="7">이미지7</option>
        <option value="8">이미지8</option>
        <option value="9">이미지9</option>
        <option value="10">이미지10</option>
        <option value="11">이미지11</option>
        <option value="12">이미지12</option>
        <option value="13">이미지13</option>
        <option value="14">이미지14</option>
        <option value="15">이미지15</option>
        <option value="16">이미지16</option>
        <option value="17">이미지17</option>
        <option value="18">이미지18</option>
        <option value="19">이미지19</option>
        <option value="20">이미지20</option>
    </select>
    <select name="image2">
        <option value="1">이미지1</option>
        <option value="2">이미지2</option>
        <option value="3">이미지3</option>
        <option value="4">이미지4</option>
        <option value="5">이미지5</option>
        <option value="6">이미지6</option>
        <option value="7">이미지7</option>
        <option value="8">이미지8</option>
        <option value="9">이미지9</option>
        <option value="10">이미지10</option>
        <option value="11">이미지11</option>
        <option value="12">이미지12</option>
        <option value="13">이미지13</option>
        <option value="14">이미지14</option>
        <option value="15">이미지15</option>
        <option value="16">이미지16</option>
        <option value="17">이미지17</option>
        <option value="18">이미지18</option>
        <option value="19">이미지19</option>
        <option value="20">이미지20</option>
    </select>
    <select name="image3">
        <option value="1">이미지1</option>
        <option value="2">이미지2</option>
        <option value="3">이미지3</option>
        <option value="4">이미지4</option>
        <option value="5">이미지5</option>
        <option value="6">이미지6</option>
        <option value="7">이미지7</option>
        <option value="8">이미지8</option>
        <option value="9">이미지9</option>
        <option value="10">이미지10</option>
        <option value="11">이미지11</option>
        <option value="12">이미지12</option>
        <option value="13">이미지13</option>
        <option value="14">이미지14</option>
        <option value="15">이미지15</option>
        <option value="16">이미지16</option>
        <option value="17">이미지17</option>
        <option value="18">이미지18</option>
        <option value="19">이미지19</option>
        <option value="20">이미지20</option>
    </select>
    <!-- <input type="file" value = "이미지1" name="image1">
    <input type="file" value = "이미지2" name="image2"> -->
    <br><br>

    
    <figure>
        <figcaption>
            Image 1
        </figcaption>
        <img src="{{image.1}}" width="200">
        <figcaption>
            Image 2
        </figcaption>
        <img src="{{image.2}}" width="200">
        <figcaption>
            Image 3
        </figcaption>
        <img src="{{image.3}}" width="200">
        <figcaption>
            Image 4
        </figcaption>
        <img src="{{image.4}}" width="200">
        <figcaption>
            Image 5
        </figcaption>
        <img src="{{image.5}}" width="200">
        <figcaption>
            Image 6
        </figcaption>
        <img src="{{image.6}}" width="200">
        <figcaption>
            Image 7
        </figcaption>
        <img src="{{image.7}}" width="200">
        <figcaption>
            Image 8
        </figcaption>
        <img src="{{image.8}}" width="200">
        <figcaption>
            Image 9
        </figcaption>
        <img src="{{image.9}}" width="200">
        <figcaption>
            Image 10
        </figcaption>
        <img src="{{image.10}}" width="200">
        <!-- <figcaption>
            Image 11
        </figcaption>
        <img src="{{image.11}}" width="200">
        <figcaption>
            Image 12
        </figcaption>
        <img src="{{image.12}}" width="200">
        <figcaption>
            Image 13
        </figcaption>
        <img src="{{image.13}}" width="200">
        <figcaption>
            Image 14
        </figcaption>
        <img src="{{image.14}}" width="200">
        <figcaption>
            Image 15
        </figcaption>
        <img src="{{image.15}}" width="200">
    </figure> -->

    
    <!-- <img src="{{image.1}}" width="200">
    <img src="{{image.2}}" width="200">
    <img src="{{image.3}}" width="200">
    <img src="{{image.4}}" width="200">
    <img src="{{image.5}}" width="200">
    <img src="{{image.6}}" width="200">
    <img src="{{image.7}}" width="200">
    <img src="{{image.8}}" width="200">
    <img src="{{image.9}}" width="200">
    <img src="{{image.10}}" width="200">
    <img src="{{image.11}}" width="200">
    <img src="{{image.12}}" width="200">
    <img src="{{image.13}}" width="200">
    <img src="{{image.14}}" width="200">
    <img src="{{image.15}}" width="200">
    <img src="{{image.16}}" width="200">
    <img src="{{image.17}}" width="200">
    <img src="{{image.18}}" width="200">
    <img src="{{image.19}}" width="200">
    <img src="{{image.20}}" width="200"> -->

    <img src="{% get_static_prefix %}{{info.id}}_1.jpg" width="200">
    <img src="{% get_static_prefix %}{{info.id}}_2.jpg" width="200">
    <img src="{% get_static_prefix %}{{info.id}}_3.jpg" width="200">
    <img src="{% get_static_prefix %}{{info.id}}_4.jpg" width="200">
    <br><br>
    <input type="submit" value = "식당 저장하기">
</form>

<br><br>
<h2>식당 재검색</h2><br>
<form method = "POST" action = "<http://127.0.0.1:8000/stores/edit/>">
    {% csrf_token %}
    <input type="text" value = "식당 이름" name="store_name">
    <!-- <input type="text" value = "운영 시간" name="time">
    <input type="file" value = "이미지1" name="image1">
    <input type="file" value = "이미지2" name="image2"> -->
    <br><br>
    <input type="submit" value = "검색!">
</form>