Django ile blog oluşturma:
DjangoGirls 2020 Trabzon için oluşturulmuştur.
Kurulum aşaması:
python3 -m venv myvenv # myvenv adında virtual env oluşturmak source myvenv/bin/activate # myvenv adındaki venvi çalıştırmak pip install Django~=2.2.4 # django kurulumu python --version #versionu kontrolü python # Python Version Kontrol import django django.VERSION # django version kontrolü exit() django-admin startproject mysite #proje oluşturma cd mysite python manage.py runserver #serveri başlat python manage.py startapp post # post diye bir uygulama oluşturur. python manage.py makemigrations python manage.py migrate python manage.py createsuperuser #admin oluşturur deactivate #venv çalışmasını durdur!
Uygulamamızı ayarlara ekliyoruz:
INSTALLED_APPS += 'post',
Modelimizi Oluşturuyoruz:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Article(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=50, blank=True)
description = models.TextField(max_length=1000, blank=True)
created_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.titleVeritabanımızı yeniliyoruz:
python manage.py makemigrations python manage.py migrate
Admin sayfasına modelimizi kaydediyoruz:
from django.contrib import admin from .models import Article admin.site.register(Article)
View’imizi yazalım:
from django.shortcuts import render
from django.views.generic import ListView
from post.models import Article
class ArticleList(ListView):
queryset = Article.objects.order_by('-created_date')
template_name = 'post_list.html'Post Uygulamasında yeni urls.py açıp ekliyoruz:
from django.urls import path
from post.views import ArticleList
urlpatterns = [
path('', ArticleList.as_view()),
]Ana dizindeki urls.py’a yeni urls.py’ı include edelim:
from django.urls import path,include
urlpatterns += path('', include('post.urls')),Ayarlara template adresimizi ekleyelelim ve ana dizinde ‘templates’ adında bir klasör oluşturalım:
TEMPLATES += 'DIRS': [os.path.join(BASE_DIR, 'templates')],
‘templates’ klasöründe ‘base.html’ diye bir dosya oluşturalım:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}Django Auth Tutorial{% endblock %}</title>
</head>
<body>
<main>
{% block content %}
{% endblock %}
</main>
</body>
</html>‘post_list.html’ dosyasını da oluşturalım:
{% extends "base.html" %}
{% block content %}
<h1>Articles:</h2>
{% for publisher in object_list %}
<h2>{{ publisher.title }}</h2>
<p>{{ publisher.description }}</p>
{% endfor %}
{% endblock %}

Bir yanıt yazın