Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. এইচটিএমএল টেমপ্লেট নিয়ে কাজ করি

এইচটিএমএল টেমপ্লেট নিয়ে কাজ করি

স্ট্যাটিক ফাইল ও টেম্পলেট

settings.py and urls.py সেট করে ফেলি যাতে টেম্পলেট এবং মিডিয়া ফাইল নিয়ে পরে কাজ করতে পারি।

#settings.py
TEMPLATES = [
    {
        'DIRS': [BASE_DIR / 'templates'], # ঠিক এইরকম
    }
]


STATIC_URL = 'static/'
STATICFILES_DIRS = [
    BASE_DIR / 'static',
]
STATIC_ROOT=(BASE_DIR/ "assets/")
import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'assets/media/')

urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

প্রজেক্ট ফোল্ডার এর যে ফোল্ডার এ manage.py ফাইল যে ফোল্ডার এ আছে সেখানে ৩ টি ফোল্ডার বানান Comment

  1. 1.assets (আপাতত খালি)Comment
  2. 2.static/css (static ফোল্ডার এর মধ্যে css নামে আরেকটি ফোল্ডার বানাই)Comment
  3. 3.templates

Hompage পরিবর্তন করি

প্রজেক্ট এর templates ফোল্ডার এর মধ্যে home.html নামে একটি html ফাইল তৈরী করে সেটাকে হোমপেজ হিসাবে সেট করি

<!-- project/templates/home.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    hello
</body>
</html>

project urls.py

from django.views.generic import TemplateView
class HomeView(TemplateView):
    template_name = 'home.html'  
urlpatterns = [
    path('', HomeView.as_view(), name='home'),
]

বেস টেমপ্লেট বানাই

templates ফোল্ডারের মধ্যে base.html নামে একটি ফাইল তৈরী করি।Comment

base.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>{% if title %} {{title}} {% else %} Blog {% endif %}</title>
    </head>
    <body>
        {% block content %}
        {% endblock %}
    </body>
</html>

হোম পেজ এ বেজ টেমপ্লেট এক্সটেন্ডস করি

Comment

চাইল্ড টেম্পলেট গুলোতে নিচের মত কোড লিখে base টেম্প্লেটকে এক্সটেন্ডস করে কাজ করবোComment

home.html

{% extends 'base.html' %} 

{% block content %}
<!-- এখানে কনটেন্ট পরিবর্তনের কোড থাকবে -->
Hello
{% endblock %}

html টেম্পলেট কে কনভার্ট করি

কাস্টম css ,js ,images ফাইল নিয়ে কাজ করার জন্য static ফোল্ডারের মধ্যে css ,js ,images নামে ফোল্ডার তৈরী করি।Comment

css এবং js ফাইলগুলো static/css এবং static/js ফোল্ডারে রাখি।

base.html ফাইলে css এবং js ফাইল static ফোল্ডার থেকে যোগ করি। এজন্য base.html ফাইলের ভিতরে html শুরু হওয়ার পূর্বে

{% load static %}

লিখে নিচের মত করে css এবং js ফাইল লোড করতে হবে।

base.html

{% load static %}

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>{% if title %} {{title}} {% else %} Blog {% endif %}</title>

<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" />

</head>

<body>

{% block content %}

{% endblock %}

<script src="{% static 'js/bootstrap.min.js' %}" defer></script>

</body>

</html>

django সার্ভার রিস্টার্ট করি

নোট

আমাদের প্রতিটি html টেম্পলেট এ

{% extends 'base.html' %} 

এর পরের লাইনে

{% load static %}

লিখতে হবে।

How can we help?