آموزش ساخت نرم افزار حسابداری با پایتون

فهرست مطالب این نوشته
Toggleساخت نرم افزار حسابداری با پایتون طی یک سری مراحل ساده انجام میشود. اول باید یک محیط مناسب برای توسعه ایجاد کنیم، یعنی پایتون و جنگو (Django) را نصب کنیم. حالا نوبت مدلهای پایگاه داده است: جایی که حسابها، تراکنشها و اطلاعات مالی ذخیره میشوند.

در ادامه سیستم ورود و ثبتنام کاربران رو راهاندازی میکنیم تا هر کاربر بتونه حسابهای خودش رو مدیریت کنه. بعدش میرسیم به اصل کار: ثبت و نمایش تراکنشها، محاسبه تراز آزمایشی و نمایش گزارشهای مالی بهصورت زیبا و خوانا. برای آشنایی بیشتر تا انتها همراهمان باشید.
ساخت نرم افزار حسابداری با پایتون به صورت گام به گام
برای یادگیری پروژه ساخت نرم افزار حسابداری ساده مراحل این قسمت را با دقت مطالعه کنید:
گام ۱: راهاندازی محیط توسعه
برای شروع نیاز به نصب و راهاندازی Django داریم. برای این کار از یک محیط مجازی (virtual environment) استفاده کنید.
محیط مجازی را میتوانید به صورت زیر ایجاد کنید:
در ترمینال یا CMD کد زیر را اجرا کنید:
python -m venv env
برای فعالسازی محیط مجازی کدهای زیر را اجرا کنید:
- ویندوز:
.\env\Scripts\activate
- لینوکس/مک:
source env/bin/activate
Django را نیز میتوانید به روش زیر نصب کنید:
پس از فعالسازی محیط مجازی، با این دستور Django را نصب کنید:
pip install django
گام ۲: ایجاد پروژه و اپلیکیشن حسابداری
یک پروژه جدید Django ایجاد کرده و یک اپلیکیشن برای مدیریت حسابداری میسازیم:
django-admin startproject accounting_project .
python manage.py startapp accounting_app
حالا، اپلیکیشن را در settings.py اضافه کنید:
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘accounting_app’, # اپلیکیشن حسابداری
]
گام ۳: طراحی پایگاه داده و مدلها
در مرحله سوم از ساخت نرم افزار حسابداری با پایتون، مدلهای پایگاه داده را تعریف میکنیم تا بتوانیم اطلاعات مربوط به حسابها و تراکنشها را ذخیره کنیم.
مدل Portfolio (حساب کاربری) به شکل زیر است:
from django.db import models
from django.contrib.auth.models import User
class Portfolio(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
def __str__(self):
return self.name
مدل Transaction (تراکنشها) را میتوانید به صورت زیر ایجاد کنید:
class Transaction(models.Model):
journal_list = models.ForeignKey(Portfolio, on_delete=models.CASCADE)
trans_name = models.CharField(max_length=30)
trans_type = models.CharField(max_length=3, choices=[(‘dbt’, ‘Debit’), (‘cdt’, ‘Credit’)])
amount = models.IntegerField()
date = models.DateField()
def __str__(self):
return self.trans_name
ثبت مدلها در پنل مدیریت Django نیز به شرح زیر است:
برای مدیریت راحتتر اطلاعات، مدلها را در admin.py ثبت میکنیم:
from django.contrib import admin
from .models import Portfolio, Transaction
admin.site.register(Portfolio)
admin.site.register(Transaction)
با اجرای دستور زیر، پایگاه داده را بهروز کنید:
python manage.py makemigrations
python manage.py migrate
گام ۴: طراحی رابط کاربری (UI) و قالبها
استفاده از Bootstrap برای طراحی رابط کاربری باعث زیبایی و خوانایی بیشتر صفحات میشود. ساختار پوشههای قالب را به این صورت تنظیم کنید:
accounting_project/ └── accounting_app/ └── templates/ └── accounting_app/ ├── base.html ├── home.html ├── signin.html ├── signup.html ├── journal.html ├── trialbalance.html
فایل base.html (قالب اصلی) به شکل زیر است:
<!DOCTYPE html>
<html lang=”fa”>
<head>
<meta charset=”UTF-8″>
<title>نرم افزار حسابداری</title>
<link rel=”stylesheet” href=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css”>
</head>
<body>
<nav class=”navbar navbar-expand-lg navbar-light bg-light”>
<a class=”navbar-brand” href=”{% url ‘home’ %}”>حسابداری</a>
</nav>
<div class=”container”>
{% block content %}
{% endblock %}
</div>
</body>
</html>
صفحه home.html (صفحه اصلی) نیز به مانند زیر میباشد:
{% extends ‘accounting_app/base.html’ %}
{% block content %}
<h2>لیست پورتفولیوها</h2>
<ul>
{% for portfolio in portfolios %}
<li>{{ portfolio.name }}</li>
{% endfor %}
</ul>
{% endblock %}
گام ۵: سیستم ورود و ثبتنام کاربران
تنظیم مسیرها در urls.py را باید به شکل زیر انجام دهید:
from django.urls import path
from django.contrib.auth.views import LoginView, LogoutView
from . import views
urlpatterns = [
path(‘login/’, LoginView.as_view(template_name=’accounting_app/signin.html’), name=’login’),
path(‘logout/’, LogoutView.as_view(next_page=’login’), name=’logout’),
path(‘signup/’, views.signup, name=’signup’),
]
جهت درست کردن View برای ثبتنام کاربران مراحل زیر را طی کنید»
در views.py کد زیر را اضافه کنید:
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
def signup(request):
if request.method == ‘POST’:
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect(‘login’)
else:
form = UserCreationForm()
return render(request, ‘accounting_app/signup.html’, {‘form’: form})
گام ۶: ثبت و نمایش تراکنشها
درست کردن View برای نمایش تراکنشها با دستورات زیر انجام میشود:
from django.shortcuts import render
from .models import Transaction
def journal(request):
transactions = Transaction.objects.all()
return render(request, ‘accounting_app/journal.html’, {‘transactions’: transactions})
صفحه journal.html برای نمایش تراکنشها را به شکل زیر درست کنید:
{% extends ‘accounting_app/base.html’ %}
{% block content %}
<h2>ژورنال مالی</h2>
<table class=”table”>
<thead>
<tr>
<th>نام تراکنش</th>
<th>نوع</th>
<th>مبلغ</th>
<th>تاریخ</th>
</tr>
</thead>
<tbody>
{% for transaction in transactions %}
<tr>
<td>{{ transaction.trans_name }}</td>
<td>{{ transaction.trans_type }}</td>
<td>{{ transaction.amount }}</td>
<td>{{ transaction.date }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
یادگیری ساخت پروژههای کاربردی با آکادمی چابک
با مطالعه این مطلب، ساخت نرم افزار حسابداری با پایتون را یاد گرفتهاید. برنامهای که شامل مدیریت حسابها، تراکنشها، و محاسبه تراز مالی میشود.
در مراحل بعدی میتوانید امکاناتی مثل گزارشگیری، نمودارهای تحلیلی و ساخت نرم افزار انبارداری با پایتون را هم به پروژه اضافه کنید.
برای یادگیری پایتون از مقدماتی تا پیشرفته به صورت کاربردی و عملی، میتوانید در دورهها ما یعنی آکادمی چابک شرکت کنید. فرقی ندارد در چه سطحی هستید، ما دورههای مختلفی با اطلاعات و متدهای مدرن آماده کردهایم تا سطح شما را ارتقا بدهیم. برای اطلاعات بیشتر همین الان با ما تماس بگیرید.
منبع:
دیدگاهتان را بنویسید