Django. Створення сайту-візитівки.

Основи Python и Django. -> Створення сайту-візитки.

Створення сайту-візитівки.

Створення ВО та активація.

mkdir vizit
cd vizit
virtualenv -p python3 venv
. ./venv/bin/activate

Встановлення залежностей.

echo "Django" >> requirements.txt
python -m pip install -r requirements.txt

Створення проекту.

django-admin startproject prj

Міграція.

cd prj
./manage.py migrate

Створення програми.

 ./manage.py startapp main

Підключаємо в prg/settings.py

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

Визначаємо функцію вьюхи в main/views.py

from django.shortcuts import render

# Create your views here.

def index(request):
    return render(request,'index.html')

Прописуємо на неї роутинг prj/urls.py.

from django.contrib import admin
from django.urls import path
from main.views import index
urlpatterns = [
    path('', index),
    path('admin/', admin.site.urls),
]

У налаштуваннях додаємо шлях до шаблонів.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [ os.path.join(BASE_DIR, 'templates')  ],
        .....
    },
]

Створюємо в корені проекту папку templates с файлом index.html.

    <h1>Hello World</h1>

Результат.

database

Замінимо шаблон index.html на готовий дизайн.

<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->  
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->  
<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->  
<head>
    <title>Responsive Portfolio Template for Developers</title>
   ...
    <!-- Global CSS -->
    <link rel="stylesheet" href="static/assets/plugins/bootstrap/css/bootstrap.min.css">   
    <!-- Plugins CSS -->
    <link rel="stylesheet" href="static/assets/plugins/font-awesome/css/font-awesome.css">

Створюємо папку static і налаштовуємо Джангу в settings.py.

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

Результат.

database

Винесемо центральну чат із шаблону index.html у файл center.html.

{% extends 'index.html'  %}

{% block center %}

<div class="primary col-md-8 col-sm-12 col-xs-12">
    <section class="about section">
        <div class="section-inner">
            <h2 class="heading">About Me</h2>
            <div class="content">
                <p>Write a brief intro about yourself. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec.</p>    
            </div><!--//content-->
        </div><!--//section-inner-->                 
    </section><!--//section-->

</div><!--//primary-->

{% endblock  %}

Визначимо блок center у головному шаблоні index.html який замінюватимемо.

<div class="container sections-wrapper">
    <div class="row">

        {% block center %} {% endblock  %}

        .....

Змінюємо шаблон у вьюхе.

from django.shortcuts import render

# Create your views here.

def index(request):
    return render(request,'center.html')

Будуємо модель main/models.py.