در دنیای بلاکچین، بلاک اکسپلورر ابزاری حیاتی است که به کاربران اجازه می‌دهد تراکنش‌ها و بلوک‌های موجود در بلاکچین را مشاهده کنند. یکی از راه‌های ساده برای ایجاد یک بلاک اکسپلورر استفاده از فریم‌ورک جنگو است. در این مقاله، مراحل ساخت یک بلاک اکسپلورر با جنگو را بررسی خواهیم کرد.

مراحل ساخت بلاک اکسپلورر با جنگو

برای شروع، نیازمند نصب جنگو و برخی کتابخانه‌های مرتبط مانند requests و json هستیم. با اجرای دستورات زیر، می‌توانیم این کتابخانه‌ها را نصب کنیم:

pip install django requests

1. ایجاد پروژه جنگو

ابتدا باید یک پروژه جدید جنگو ایجاد کنید. با استفاده از دستور زیر، یک پروژه به نام blockexplorer ایجاد می‌کنیم:

django-admin startproject blockexplorer

2. ایجاد اپلیکیشن بلاک اکسپلورر

سپس یک اپلیکیشن جدید در پروژه برای بلاک اکسپلورر ایجاد می‌کنیم. دستورات زیر این کار را انجام می‌دهند:

cd blockexplorer
python manage.py startapp explorer

3. تنظیمات پروژه

اکنون باید اپلیکیشن جدید خود را به تنظیمات پروژه اضافه کنند. به فایل settings.py رفته و در بخش INSTALLED_APPS اپلیکیشن explorer را اضافه کنید:

INSTALLED_APPS = [
    # سایر اپلیکیشن‌ها
    'explorer',
]

آموزش جنگو (رایگان)

4. ایجاد مدل‌ها

برای نمایش داده‌های بلاکچین، باید مدل‌هایی را در فایل models.py تعریف کنیم. به طور مثال، می‌توانیم مدل‌های Block و Transaction را به شکل زیر تعریف کنیم:

from django.db import models

class Block(models.Model):
    block_number = models.IntegerField()
    previous_hash = models.CharField(max_length=64)
    timestamp = models.DateTimeField()
    nonce = models.IntegerField()

class Transaction(models.Model):
    sender = models.CharField(max_length=42)
    recipient = models.CharField(max_length=42)
    amount = models.FloatField()
    block = models.ForeignKey(Block, on_delete=models.CASCADE)

5. ایجاد ویوها

حال زمان آن رسیده است که ویوهای مورد نیاز برای نمایش اطلاعات بلاک و تراکنش‌ها را ایجاد کنیم. به فایل views.py بروید و کد زیر را اضافه کنید:

from django.shortcuts import render
from .models import Block, Transaction

def index(request):
    blocks = Block.objects.all()
    return render(request, 'explorer/index.html', {'blocks': blocks})

def block_detail(request, block_id):
    block = Block.objects.get(id=block_id)
    transactions = block.transaction_set.all()
    return render(request, 'explorer/block_detail.html', {'block': block, 'transactions': transactions})

6. ایجاد URLها

حالا باید URLهای مربوطه را در فایل urls.py اپلیکیشن تعریف کنیم:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('block/<int:block_id>/', views.block_detail, name='block_detail'),
]

و سپس URLهای اپلیکیشن را به فایل urls.py اصلی پروژه متصل کنید:

from django.urls import include, path

urlpatterns = [
    path('explorer/', include('explorer.urls')),
]

7. ایجاد تمپلیت‌ ها

در نهایت، باید تمپلیت‌های HTML برای نمایش اطلاعات را ایجاد کنیم. به پوشه templates/explorer بروید و فایل‌های index.html و block_detail.html را ایجاد کنید. به عنوان مثال، محتویات index.html می‌تواند به شکل زیر باشد:

<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <title>بلاک اکسپلورر</title>
</head>
<body>
    <h1>لیست بلوک‌ها</h1>
    <ul>
        {% for block in blocks %}
            <li><a href="{% url 'block_detail' block.id %}">بلوک {{ block.block_number }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>

نتیجه‌ گیری

در این مقاله، فرآیند ساخت یک بلاک اکسپلورر ساده با جنگو را بررسی کردیم. این مراحل پایه‌ای به شما کمک می‌کند تا با جنگو آشنا شوید و قابلیت‌های بیشتری نیز به بلاک اکسپلورر خود اضافه کنید. با ادامه یادگیری و توسعه، می‌توانید از این اساسی به یک بلاک اکسپلورر کامل و پیشرفته‌تر دست یابید.