Доброго времени суток, дорогие друзья!
Начнем с того, что нам нужно:
Для начала нам нужно создать папку, в которой мы будем создавать виртуальное окружение. Я его назову superwebsite
Теперь нам надо установить сам Django.
Для этого открываем cmd и вписываем:
Ну, а теперь самое интересное!
Создаем проект
Отлично! Основа сайта готова. Теперь запустим веб-сервер
Теперь, когда вы вводите localhost:8000, вас поприветствует это окно!
Так, а теперь там нужна БД
Пока у нас есть sqlite который находится в папке db.sqlite3
Создаем таблицы для БД
Теперь нам нужно создать новое приложение в нашем проекте, я его назову megabomba
После чего, в папке проекта будет:
Чтобы Django задетектил изменения, нужно зайти в settings.py (папка superwebsite/superwebsite/superwebsite) и найти INSTALLED_APPS
Там просто нужно добавить новый элемент с названием нашего приложения.
Пришло время попыхтеть.
Сейчас мы будем работать с Model
Добавим Topic и Entry в файл models.py (папка superwebsite/superwebsite/superwebsite)
Открываем models.py и вписываем следующее:
Теперь создаем файл миграции и БД
Сейчас нам нужно зайти в админ панель и создать суперюзера
После добавления нового юзеры мы можем увидеть следующее чудо!
Для того, чтобы мы могли работать с нашими моделями, мы должны зарегистрировать их.
Для этого мы переходим в файл admin.py (superwebsite/superwebsite/megabomba) и вписываем следующее:
Пришло время делать маршруты для запросов от браузера.
Для этого редактируем два файла urls.py (все та же папка superwebsite/superwebsite/superwebsite) и для приложения megabomba (папка superwebsite/superwebsite/megabomba)
Дальше делаем иморты path и include
Сделаю полный пример, чтобы не запутались:
Теперь создадим файл urls.py в папке приложения (папка superwebsite/superwebsite/megabomba)
Опять же сделаю полный пример:
В методе path() первым параметром идет url страницы на сайте,
Второй параметр – это метод в файле views , который должен обрабатывать пришедший запрос от посетителя сайта,
Третий параметр – это произвольное имя данного маршрута, которое может применяться в дальнейшем для обращения к этому маршруту.
Начинаем работать с представлением для получения информации от модели и отдачи шаблона template, который нужен ему для размещения информации на html-странице
Для того, чтобы найти этот класс представления нам нужно перейти в файл views.py, который находится в папке приложения megabomba (superwebsite/superwebsite/megabomba) Добавим в него метод маршрута:
Создаем шаблоны в папке приложения megabomba (superwebsite/superwebsite/megabomba) создав папку templates и внутри нее папку с названием приложения ultrapitarda. Затем внутри этой папки создаем 3 файла: base.html, index.html и topic.html.
Приступаем к части с html
В index.html вписываем следующее:
В topic.html вписываем следующее:
В base.html вписываем следующее:
Теперь заходим сюда и радуемся
Надеюсь что было понятно. Буду искренне благодарен, если пишите аргументированную критику(Она помогает мне улучшать свой контент)!
Начнем с того, что нам нужно:
- Python последней версии
- Django
- Руки
- Мозги
Для начала нам нужно создать папку, в которой мы будем создавать виртуальное окружение. Я его назову superwebsite
superwebsite_env\Scripts\activate
Теперь нам надо установить сам Django.
Для этого открываем cmd и вписываем:
pip install Django
Ну, а теперь самое интересное!
Создаем проект
django-admin.py startproject superwebsite
Отлично! Основа сайта готова. Теперь запустим веб-сервер
python manage.py runserver
Теперь, когда вы вводите localhost:8000, вас поприветствует это окно!
Так, а теперь там нужна БД
База Данных, запомни! В школе будешь хвастаться перед друзьями!:D
Пока у нас есть sqlite который находится в папке db.sqlite3
Создаем таблицы для БД
python manage.py migrate
Теперь нам нужно создать новое приложение в нашем проекте, я его назову megabomba
python manage.py startapp [B]megabomba[/B]
После чего, в папке проекта будет:
Код:
superwebsite/superwebsite
|-- superwebsite
|-- megabomba
|-- db.sqlite3
|-- manage.py
Чтобы Django задетектил изменения, нужно зайти в settings.py (папка superwebsite/superwebsite/superwebsite) и найти INSTALLED_APPS
Там просто нужно добавить новый элемент с названием нашего приложения.
Код:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'megabomba',
]
Пришло время попыхтеть.
Сейчас мы будем работать с Model
Добавим Topic и Entry в файл models.py (папка superwebsite/superwebsite/superwebsite)
Открываем models.py и вписываем следующее:
Python:
from django.db import models
class Topic(models.Model):
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.text
class Entry(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.PROTECT)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
return self.text[:50] + "..."
Теперь создаем файл миграции и БД
python manage.py makemigrations megabomba
python manage.py migrate
Сейчас нам нужно зайти в админ панель и создать суперюзера
python manage.py createsuperuser
После добавления нового юзеры мы можем увидеть следующее чудо!
Для того, чтобы мы могли работать с нашими моделями, мы должны зарегистрировать их.
Для этого мы переходим в файл admin.py (superwebsite/superwebsite/megabomba) и вписываем следующее:
Пришло время делать маршруты для запросов от браузера.
Для этого редактируем два файла urls.py (все та же папка superwebsite/superwebsite/superwebsite) и для приложения megabomba (папка superwebsite/superwebsite/megabomba)
Python:
from django.contrib import admin
from megabomba.models import Topic, Entry
admin.site.register(Topic)
admin.site.register(Entry)
Дальше делаем иморты path и include
Сделаю полный пример, чтобы не запутались:
Python:
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('megabomba.urls', namespace='logs')),
]
from django.urls import path, include
Теперь создадим файл urls.py в папке приложения (папка superwebsite/superwebsite/megabomba)
Опять же сделаю полный пример:
Python:
from django.urls import path
from . import views
app_name = 'logs'
urlpatterns = [
path('', views.index, name='index'),
path('topics/<int:polls_id>/', views.polls, name='logs'),
]
В методе path() первым параметром идет url страницы на сайте,
Второй параметр – это метод в файле views , который должен обрабатывать пришедший запрос от посетителя сайта,
Третий параметр – это произвольное имя данного маршрута, которое может применяться в дальнейшем для обращения к этому маршруту.
Начинаем работать с представлением для получения информации от модели и отдачи шаблона template, который нужен ему для размещения информации на html-странице
Для того, чтобы найти этот класс представления нам нужно перейти в файл views.py, который находится в папке приложения megabomba (superwebsite/superwebsite/megabomba) Добавим в него метод маршрута:
Python:
from django.shortcuts import render
from .models import Topic
def index(request):
topics = Topic.objects.order_by('-date_added')
context = {
'topics': topics,
}
return render(request,
'logs/index.html', context)
def topic(request, topic_id):
topic = Topic.objects.get(id=topic_id)
entries = topic.entry_set.order_by('-date_added')
context = {
'topic': topic,
'entries': entries,
}
return render(request,
'logs/topic.html', context)
Создаем шаблоны в папке приложения megabomba (superwebsite/superwebsite/megabomba) создав папку templates и внутри нее папку с названием приложения ultrapitarda. Затем внутри этой папки создаем 3 файла: base.html, index.html и topic.html.
Приступаем к части с html
В index.html вписываем следующее:
HTML:
{% extends 'ultrapitarda/base.html' %}
{% block content %}
<h3>Статьи:</h3>
{% for topic in topics %}
<p>
<strong>
<a href="/topics/{{ topic.id }}/">
{{topic.text}}
</a>
</strong>
(Дата создания: {{topic.date_added|date:'H:i d/m/Y'}})
</p>
{% empty %}
<p>Статей нету.</p>
{% endfor %}
{% endblock content %}
В topic.html вписываем следующее:
HTML:
{% extends 'ultrapitarda/base.html' %}
{% block content %}
<h3>Тема статьи: {{topic}}</h3>
{% for entry in entries %}
<p>
{{entry.text|linebreaks}}
(Дата создания: {{entry.date_added|date:'H:i d/m/Y'}})
</p>
{% empty %}
<p>Записей нету.</p>
{% endfor %}
{% endblock content %}
В base.html вписываем следующее:
HTML:
<p><a href="{% url ultrapitarda:index' %}">
Все Статьи.
</a></p>
{% block content %}{% endblock content %}
Теперь заходим сюда и радуемся
Чтобы добавить топики и статьи нужно зайти в админку Django
Надеюсь что было понятно. Буду искренне благодарен, если пишите аргументированную критику(Она помогает мне улучшать свой контент)!
Остались вопросы ? Пиши в tgНадо собирать камни, которые в вас бросают. Это основание будущего пьедестала.
Последнее редактирование: