Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 7892c728

Přidáno uživatelem qlint před asi 2 roky(ů)

  • ID 7892c7283cd8c438540c59aebced4efd0158bb48
  • Rodič 66ed6f0b

new: Add basic demo with Django framework

Zobrazit rozdíly:

README.md
14 14
- API dokumentace ve formátu OpenAPI je dostupná [zde](https://api.retailys.com/v1)
15 15
- Changelog API je [zde](https://api.retailys.com/news)
16 16

  
17
## Web server
18
- Spuštění DEV serveru se provede příkazem
19
```
20
python manage.py runserver 8080
21
```
22
- Kde 8080 je číslo portu, na kterém server naslouchá - Pokud se vynechá, default je 8000
23
- slouží pouze pro DEV - Nepoužívat v PROD
24
- ** Django DEV server má live reload - Když detekuje změnu v souborech, tak to automaticky přenačte **
25

  
17 26

  
18 27

  
19 28
## Getting started
src/integration/admin.py
1
from django.contrib import admin
2

  
3
# Register your models here.
src/integration/apps.py
1
from django.apps import AppConfig
2

  
3

  
4
class IntegrationConfig(AppConfig):
5
    default_auto_field = 'django.db.models.BigAutoField'
6
    name = 'integration'
src/integration/models.py
1
from django.db import models
2

  
3
# Create your models here.
src/integration/tests.py
1
from django.test import TestCase
2

  
3
# Create your tests here.
src/integration/urls.py
1
from django.urls import path
2

  
3
from . import views
4

  
5
urlpatterns = [
6
    path('', views.index, name='index'),
7
]
src/integration/views.py
1
from django.shortcuts import render
2
from django.http import HttpResponse
3

  
4
# Create your views here.
5
def index(request):
6
    return HttpResponse("Hello, world. You're at the integration index.")
src/manage.py
1
#!/usr/bin/env python
2
"""Django's command-line utility for administrative tasks."""
3
import os
4
import sys
5

  
6

  
7
def main():
8
    """Run administrative tasks."""
9
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'retailys_allegro_integration.settings')
10
    try:
11
        from django.core.management import execute_from_command_line
12
    except ImportError as exc:
13
        raise ImportError(
14
            "Couldn't import Django. Are you sure it's installed and "
15
            "available on your PYTHONPATH environment variable? Did you "
16
            "forget to activate a virtual environment?"
17
        ) from exc
18
    execute_from_command_line(sys.argv)
19

  
20

  
21
if __name__ == '__main__':
22
    main()
src/retailys_allegro_integration/asgi.py
1
"""
2
ASGI config for retailys_allegro_integration project.
3

  
4
It exposes the ASGI callable as a module-level variable named ``application``.
5

  
6
For more information on this file, see
7
https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/
8
"""
9

  
10
import os
11

  
12
from django.core.asgi import get_asgi_application
13

  
14
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'retailys_allegro_integration.settings')
15

  
16
application = get_asgi_application()
src/retailys_allegro_integration/settings.py
1
"""
2
Django settings for retailys_allegro_integration project.
3

  
4
Generated by 'django-admin startproject' using Django 4.1.7.
5

  
6
For more information on this file, see
7
https://docs.djangoproject.com/en/4.1/topics/settings/
8

  
9
For the full list of settings and their values, see
10
https://docs.djangoproject.com/en/4.1/ref/settings/
11
"""
12

  
13
from pathlib import Path
14

  
15
# Build paths inside the project like this: BASE_DIR / 'subdir'.
16
BASE_DIR = Path(__file__).resolve().parent.parent
17

  
18

  
19
# Quick-start development settings - unsuitable for production
20
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/
21

  
22
# SECURITY WARNING: keep the secret key used in production secret!
23
SECRET_KEY = 'django-insecure-x9nhun&*94*hx_-cw%kir884=#783o*x)p)=r$@pexm4_u4y3&'
24

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

  
28
ALLOWED_HOSTS = []
29

  
30

  
31
# Application definition
32

  
33
INSTALLED_APPS = [
34
    'django.contrib.admin',
35
    'django.contrib.auth',
36
    'django.contrib.contenttypes',
37
    'django.contrib.sessions',
38
    'django.contrib.messages',
39
    'django.contrib.staticfiles',
40
]
41

  
42
MIDDLEWARE = [
43
    'django.middleware.security.SecurityMiddleware',
44
    'django.contrib.sessions.middleware.SessionMiddleware',
45
    'django.middleware.common.CommonMiddleware',
46
    'django.middleware.csrf.CsrfViewMiddleware',
47
    'django.contrib.auth.middleware.AuthenticationMiddleware',
48
    'django.contrib.messages.middleware.MessageMiddleware',
49
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
50
]
51

  
52
ROOT_URLCONF = 'retailys_allegro_integration.urls'
53

  
54
TEMPLATES = [
55
    {
56
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
57
        'DIRS': [],
58
        'APP_DIRS': True,
59
        'OPTIONS': {
60
            'context_processors': [
61
                'django.template.context_processors.debug',
62
                'django.template.context_processors.request',
63
                'django.contrib.auth.context_processors.auth',
64
                'django.contrib.messages.context_processors.messages',
65
            ],
66
        },
67
    },
68
]
69

  
70
WSGI_APPLICATION = 'retailys_allegro_integration.wsgi.application'
71

  
72

  
73
# Database
74
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
75

  
76
DATABASES = {
77
    'default': {
78
        'ENGINE': 'django.db.backends.sqlite3',
79
        'NAME': BASE_DIR / 'db.sqlite3',
80
    }
81
}
82

  
83

  
84
# Password validation
85
# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators
86

  
87
AUTH_PASSWORD_VALIDATORS = [
88
    {
89
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
90
    },
91
    {
92
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
93
    },
94
    {
95
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
96
    },
97
    {
98
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
99
    },
100
]
101

  
102

  
103
# Internationalization
104
# https://docs.djangoproject.com/en/4.1/topics/i18n/
105

  
106
LANGUAGE_CODE = 'en-us'
107

  
108
TIME_ZONE = 'UTC'
109

  
110
USE_I18N = True
111

  
112
USE_TZ = True
113

  
114

  
115
# Static files (CSS, JavaScript, Images)
116
# https://docs.djangoproject.com/en/4.1/howto/static-files/
117

  
118
STATIC_URL = 'static/'
119

  
120
# Default primary key field type
121
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
122

  
123
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
src/retailys_allegro_integration/urls.py
1
"""retailys_allegro_integration URL Configuration
2

  
3
The `urlpatterns` list routes URLs to views. For more information please see:
4
    https://docs.djangoproject.com/en/4.1/topics/http/urls/
5
Examples:
6
Function views
7
    1. Add an import:  from my_app import views
8
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
9
Class-based views
10
    1. Add an import:  from other_app.views import Home
11
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
12
Including another URLconf
13
    1. Import the include() function: from django.urls import include, path
14
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
15
"""
16
from django.contrib import admin
17
from django.urls import include, path
18

  
19
urlpatterns = [
20
    path('integration/', include('integration.urls')),
21
    path('admin/', admin.site.urls),
22
]
src/retailys_allegro_integration/wsgi.py
1
"""
2
WSGI config for retailys_allegro_integration project.
3

  
4
It exposes the WSGI callable as a module-level variable named ``application``.
5

  
6
For more information on this file, see
7
https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/
8
"""
9

  
10
import os
11

  
12
from django.core.wsgi import get_wsgi_application
13

  
14
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'retailys_allegro_integration.settings')
15

  
16
application = get_wsgi_application()

Také k dispozici: Unified diff