چنل پایتون | جنگو | برنامه نویسی وب سایت
420 subscribers
292 photos
141 videos
40 files
208 links
ارتباط با مدیر:

@Amir_123_ka
Download Telegram
Forwarded from Python Forever
Media is too big
VIEW IN TELEGRAM
🟡 آموزش کتابخانه kivy و geopy پایتون | پروژه محاسبه فواصل مختلف

📝 زبان: فارسی
👤 مدرس: ایمان صادقی رونیزی
🔗 منبع: لیموناد

📌 جلسه 4- ایجاد نشانگر بر روی نقشه

🔅 ایجاد نشانگر بر روی نقشه که طول و عرض جغرافیایی را در لحظه به ما نشان دهد.

#ویدئو #فیلم #پایتون #کیوی
#Video #Python #Kivy #Geopy
🐍 @PythonForever
Forwarded from Python Forever
Media is too big
VIEW IN TELEGRAM
🟡 آموزش کتابخانه kivy و geopy پایتون | پروژه محاسبه فواصل مختلف

📝 زبان: فارسی
👤 مدرس: ایمان صادقی رونیزی
🔗 منبع: لیموناد

📌 جلسه 5- ایجاد نشانگر دوم روی نقشه

🔅 ایجاد نشانگر دوم و امادگی نقشه برای محاسبه فواصل مختلف

#ویدئو #فیلم #پایتون #کیوی
#Video #Python #Kivy #Geopy
🐍 @PythonForever
Forwarded from Python Forever
Media is too big
VIEW IN TELEGRAM
🟡 آموزش کتابخانه kivy و geopy پایتون | پروژه محاسبه فواصل مختلف

📝 زبان: فارسی
👤 مدرس: ایمان صادقی رونیزی
🔗 منبع: لیموناد

📌 جلسه 6- آشنایی با کتابخانه geopy

🔅 استفاده از کتابخانه geopy برای محاسبه فواصل زمین، نشان دادن مکان با استفاده از طول و عرض جغرافیایی

#ویدئو #فیلم #پایتون #کیوی
#Video #Python #Kivy #Geopy
🐍 @PythonForever
Forwarded from Python Forever
Media is too big
VIEW IN TELEGRAM
🟡 آموزش کتابخانه kivy و geopy پایتون | پروژه محاسبه فواصل مختلف

📝 زبان: فارسی
👤 مدرس: ایمان صادقی رونیزی
🔗 منبع: لیموناد

📌 جلسه 7- استفاده از geopy در پروژه

🔅 استفاده از geopy و mapview در کنار یکدیگر و تکمیل پروژه

#ویدئو #فیلم #پایتون #کیوی
#Video #Python #Kivy #Geopy
🐍 @PythonForever
اینم فیلم آموزشی
کتابخونه kivy و geopy
قوانین هکرها: قانون پاره‌تو یا همون قانون بیست به هشتاد

قاعده پاره‌تو می‌گه که چیزها در جهان به شکل خطی تقسیم نشدن و در بعضی پدیده‌ها، ۸۰٪ نتایج از ۲۰٪ ورودی‌ها میان. این قاعده توی نرم افزار و مدیریت و خیلی جاهای دیگه کارکرد داره و حتی به شکل تجربی بارها دیده شده. مثلا مایکروسافت به این نتیجه رسیده که با حل کردن ۲۰٪ باگ‌ها، ۸۰٪ کرش‌ها حل می‌شن یا در حین انجام پروژه، بعد از ۲۰٪ زمان، ۸۰٪ پروژه پیش می‌ره و در مقابل ۲۰٪ آخر نیازمند ۸۰٪ تلاش نیروها است.
👍2
از کانال راضی هستید؟؟
Anonymous Poll
100%
اره
0%
نه
🚀 آموزش ساخت یک IDE ساده با پایتون و Tkinter

در این آموزش، نحوه ساخت یک محیط توسعه یکپارچه (IDE) ساده با استفاده از پایتون و کتابخانه Tkinter را به شما نشان خواهیم داد. این IDE به شما امکان می‌دهد تا کدهای پایتون خود را نوشته، ذخیره و اجرا کنید. برای شروع، از ابزارهای پایه‌ای استفاده خواهیم کرد، اما شما می‌توانید با افزودن قابلیت‌های بیشتر، IDE خود را پیشرفته‌تر کنید.

🛠 نصب Tkinter
Tkinter معمولاً با پایتون به صورت پیش‌فرض نصب می‌شود. اما اگر آن را ندارید، می‌توانید از دستور زیر برای نصب آن استفاده کنید:

pip install tk
📋 مراحل ساخت IDE

1. ایجاد پنجره اصلی IDE
2. افزودن ویجت‌های متن برای نوشتن کد
3. افزودن منوها برای باز کردن، ذخیره و اجرای فایل‌ها
4. اضافه کردن قابلیت اجرای کد پایتون

1. ایجاد پنجره اصلی IDE

ابتدا یک پنجره اصلی ایجاد می‌کنیم:
import tkinter as tk
from tkinter import filedialog, Text
import subprocess

def create_main_window():
window = tk.Tk()
window.title("پایتون IDE")
window.geometry("800x600")
return window

if __name__ == "__main__":
main_window = create_main_window()
main_window.mainloop()
2. افزودن ویجت‌های متن برای نوشتن کد

برای نوشتن کد، یک ویجت Text اضافه می‌کنیم:
def add_text_widget(window):
text_widget = Text(window, wrap='none')
text_widget.pack(expand=True, fill='both')
return text_widget

if __name__ == "__main__":
main_window = create_main_window()
text_editor = add_text_widget(main_window)
main_window.mainloop()
3. افزودن منوها برای باز کردن، ذخیره و اجرای فایل‌ها

یک منو برای باز کردن، ذخیره و اجرای فایل‌ها اضافه می‌کنیم:
def add_menu(window, text_widget):
menu = tk.Menu(window)
window.config(menu=menu)

file_menu = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="فایل", menu=file_menu)

def open_file():
file_path = filedialog.askopenfilename(defaultextension=".py", filetypes=[("Python files", "*.py")])
if file_path:
with open(file_path, "r", encoding="utf-8") as file:
code = file.read()
text_widget.delete(1.0, tk.END)
text_widget.insert(tk.END, code)

def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".py", filetypes=[("Python files", "*.py")])
if file_path:
with open(file_path, "w", encoding="utf-8") as file:
code = text_widget.get(1.0, tk.END)
file.write(code)

def run_code():
code = text_widget.get(1.0, tk.END)
exec(code)

file_menu.add_command(label="باز کردن", command=open_file)
file_menu.add_command(label="ذخیره", command=save_file)
file_menu.add_separator()
file_menu.add_command(label="اجرا", command=run_code)

if __name__ == "__main__":
main_window = create_main_window()
text_editor = add_text_widget(main_window)
add_menu(main_window, text_editor)
main_window.mainloop()
4. اضافه کردن قابلیت اجرای کد پایتون

برای اجرای کد پایتون، از توابع داخلی پایتون استفاده می‌کنیم:
`
import tkinter as tk
from tkinter import filedialog, Text, messagebox

def create_main_window():
window = tk.Tk()
window.title("پایتون IDE")
window.geometry("800x600")
return window

def add_text_widget(window):
text_widget = Text(window, wrap='none')
text_widget.pack(expand=True, fill='both')
return text_widget

def add_menu(window, text_widget):
menu = tk.Menu(window)
window.config(menu=menu)

file_menu = tk.Menu(menu, tearoff=0)
menu.add_cascade(label="فایل", menu=file_menu)

def open_file():
file_path = filedialog.askopenfilename(defaultextension=".py", filetypes=[("Python files", "*.py")])
if file_path:
with open(file_path, "r", encoding="utf-8") as file:
code = file.read()
text_widget.delete(1.0, tk.END)
text_widget.insert(tk.END, code)
☝️ادامه کد متن قبلی☝️
def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".py", filetypes=[("Python files", "*.py")])
if file_path:
with open(file_path, "w", encoding="utf-8") as file:
code = text_widget.get(1.0, tk.END)
file.write(code)

def run_code():
code = text_widget.get(1.0, tk.END)
exec(code)

file_menu.add_command(label="باز کردن", command=open_file)
file_menu.add_command(label="ذخیره", command=save_file)
file_menu.add_separator()
file_menu.add_command(label="اجرا", command=run_code)

if name == "main":
main_window = create_main_window()
text_editor = add_text_widget(main_window)
add_menu(main_window, text_editor)
main_window.mainloop()
`
🎉 تبریک! شما یک IDE ساده با پایتون ساختید!

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

🔧 گسترش قابلیت‌ها*
در اینجا چند پیشنهاد برای گسترش قابلیت‌های IDE:
- هایلایت سینتکس
- شماره‌گذاری خطوط
- تکمیل خودکار کد
- ابزار دیباگ
👍3
چی بزارم؟
Anonymous Poll
80%
کد
20%
عکس
0%
فیلم
👀 سخت‌ترین زبان‌های برنامه‌نویسی

در این مطلب 4 مورد از سخت‌ترین زبان‌های برنامه‌نویسی که برای یک برنامه‌نویس عادی کابوس هستند را معرفی می‌کنیم.

1️⃣Malbolge
یکی از دشوارترین زبان‌های برنامه‌نویسی که نوشتن برنامه‌های ساده در آن معادل با دو سال کار است.
برنامه Hello World:
(=<#9]~6ZY32Vx/4Rs+0No-&Jk)”Fh}|Bcy?=*z]Kw%oG4UUS0/@-ejc(:’8dc
2️⃣Cow Programming Language
زبان برنامه‌نویسی بر اساس صداهای گاوها (Moo) با ۲۴ حالت دستوری مختلف.
برنامه Hello World:
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOoMOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo MooOOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo
3️⃣Brainfuck
زبان esoteric با تنها ۸ دستور: < > + – . , [ ]
برنامه Hello World:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.
4️⃣INTERCAL
یک زبان کامپایلری با دستورات عجیب و ترکیبی از زبان‌های دیگر.
برنامه Hello World:
PLEASE DO ,1 <- #13

DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #112
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #238
DO ,1 SUB #7 <- #26
DO ,1 SUB #8 <- #248
DO ,1 SUB #9 <- #168
DO ,1 SUB #10 <- #24
DO ,1 SUB #11 <- #16
DO ,1 SUB #12 <- #158
DO ,1 SUB #13 <- #52

PLEASE READ OUT ,1
PLEASE GIVE UP
👍4
شروع آموزش جامع بک‌اند با پایتون

سلام به همه همراهان عزیز! 👋
با افتخار اعلام می‌کنیم که دوره جدیدی از آموزش‌های تخصصی و جامع بک‌اند با پایتون را به صورت متنی در کانال تلگرام خود آغاز کرده‌ایم. این دوره طراحی شده تا شما را از سطح مبتدی به سطح پیشرفته در برنامه‌نویسی بک‌اند برساند. اگر علاقه‌مند به یادگیری پایتون و توسعه بک‌اند هستید، این دوره برای شماست! 🚀

چرا این دوره؟

پایتون: زبانی قدرتمند و محبوب
پایتون یکی از پرکاربردترین زبان‌های برنامه‌نویسی است که به دلیل سادگی و امکانات گسترده‌اش برای توسعه بک‌اند بسیار محبوب است.

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

جامع و کاربردی
این دوره شامل مباحث پایه تا پیشرفته است، از نصب ابزارها و محیط‌های توسعه گرفته تا ایجاد API‌های پیشرفته و استقرار پروژه‌ها.

سرفصل‌های دوره:

1. معرفی و نصب ابزارها 📦
2. اصول برنامه‌نویسی با پایتون 🐍
3. کار با فایل‌ها و دیتابیس‌ها 🗄️
4. ایجاد اولین API با Flask 🌐
5. توسعه API پیشرفته با Flask 🚀
6. مدیریت پایگاه داده با SQLAlchemy 🗃️
7. مدیریت پروژه و کار با Git 🌳
8. تست و ارزیابی کد 🧪
9. استقرار پروژه 🌍
10. امنیت در بک‌اند 🔒

همراه ما باشید!

این فرصت عالی را از دست ندهید و همراه ما باشید تا به دنیای جذاب بک‌اند با پایتون وارد شوید. هر روز منتظر یک پارت جدید از این آموزش جذاب باشید. 🚀

🔗 لینک کانال تلگرام: [@programming_python_90]
پارت ۱: معرفی و نصب ابزارها

سلام به همه! 👋 امروز با اولین پارت از آموزش جامع بک‌اند با پایتون در خدمت شما هستیم. این پارت شامل مقدمه‌ای بر بک‌اند و نصب ابزارهای مورد نیاز خواهد بود. 🚀

مقدمه‌ای بر بک‌اند و اهمیت آن:
بک‌اند به قسمت سرور و منطق کسب‌وکار یک وب‌سایت یا برنامه اطلاق می‌شود. این قسمت شامل مدیریت دیتابیس، احراز هویت کاربران، پردازش درخواست‌ها و ارسال پاسخ به کاربران است. بک‌اند نقش حیاتی در عملکرد صحیح و ایمن یک برنامه دارد. 🌐

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

نصب ابزارهای مورد نیاز 📦

برای شروع به کار با پایتون و توسعه بک‌اند، ابتدا باید ابزارهای زیر را نصب کنید:

1. نصب پایتون:
   - به وب‌سایت رسمی پایتون [python.org]
بروید و آخرین نسخه پایتون را دانلود و نصب کنید.

2. نصب یک ویرایشگر کد:
   - می‌توانید از هر ویرایشگر متنی استفاده کنید، اما پیشنهاد ما Visual Studio Code یا PyCharm است.
   - [دانلود Visual Studio Code]
   - [دانلود PyCharm]

3. راه‌اندازی محیط مجازی:
   محیط مجازی به شما اجازه می‌دهد تا بسته‌ها و کتابخانه‌های پایتون را به صورت جداگانه برای هر پروژه مدیریت کنید. برای ایجاد یک محیط مجازی دستور زیر را در ترمینال وارد کنید:
 
   python -m venv myenv
  

   سپس محیط مجازی را فعال کنید:
   - در ویندوز:
   
     myenv\Scripts\activate
    

   - در مک یا لینوکس:
   
     source myenv/bin/activate
    

شروع کار با پایتون

1. ایجاد یک پروژه جدید:
   - یک پوشه جدید برای پروژه خود بسازید و وارد آن شوید.
   - محیط مجازی را در این پوشه ایجاد و فعال کنید.

2. نصب بسته‌های مورد نیاز:
   - برای نصب بسته‌های مورد نیاز از pip استفاده کنید. به عنوان مثال، برای نصب Flask (یک فریمورک وب محبوب برای پایتون):
   
     pip install Flask
    

3. ایجاد اولین برنامه:
   - یک فایل جدید به نام app.py ایجاد کنید و کد زیر را در آن قرار دهید:
   
     from flask import Flask

     app = Flask(__name__)

     @app.route('/')
     def hello_world():
         return 'Hello, World!'

     if __name__ == '__main__':
         app.run(debug=True)
    

4. اجرای برنامه:
   - در ترمینال دستور زیر را وارد کنید تا برنامه اجرا شود:
   
     python app.py


نتیجه‌گیری

در این پارت، با مقدمات بک‌اند، دلایل انتخاب پایتون، نصب ابزارهای مورد نیاز و راه‌اندازی اولین برنامه خود آشنا شدید. در پارت بعدی به اصول برنامه‌نویسی با پایتون خواهیم پرداخت. منتظر باشید! 🚀

لینک کانال تلگرام [@programming_python_90]
پارت ۲: اصول اولیه بک‌اند با پایتون

سلام دوستان عزیز! 👋

در این پارت از آموزش جامع بک‌اند با پایتون، به اصول اولیه برنامه‌نویسی بک‌اند می‌پردازیم. این مباحث شامل مدیریت داده‌ها، کار با دیتابیس‌ها و اصول طراحی API می‌شود. 🚀

مدیریت داده‌ها و کار با دیتابیس‌ها 🗄️
یکی از مهم‌ترین بخش‌های بک‌اند، مدیریت داده‌هاست. این شامل ذخیره‌سازی، بازیابی، به‌روزرسانی و حذف داده‌ها از دیتابیس‌ها می‌شود. دیتابیس‌ها به دو نوع اصلی تقسیم می‌شوند: SQL و NoSQL.

1. دیتابیس‌های SQL:
- SQL (Structured Query Language) یک زبان استاندارد برای مدیریت و دسترسی به دیتابیس‌های رابطه‌ای است. دیتابیس‌های معروف SQL شامل MySQL، PostgreSQL و SQLite هستند.
- مثال اتصال به SQLite:

     import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
conn.commit()
conn.close()

2. دیتابیس‌های NoSQL:
- دیتابیس‌های NoSQL برای مدیریت داده‌های بدون ساختار و مقیاس‌پذیری بالا طراحی شده‌اند. دیتابیس‌های معروف NoSQL شامل MongoDB، Cassandra و Redis هستند.
- مثال اتصال به MongoDB:
     from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
db = client['example_db']
collection = db['users']

collection.insert_one({"name": "Ali", "age": 25})
اصول طراحی API 📡
API (Application Programming Interface) به برنامه‌ها اجازه می‌دهد با یکدیگر ارتباط برقرار کنند. APIها می‌توانند برای ارسال و دریافت داده‌ها بین سرور و کلاینت استفاده شوند.

1. RESTful API:
- REST (Representational State Transfer) یک سبک معماری برای طراحی APIهاست که از HTTP برای ارسال و دریافت داده‌ها استفاده می‌کند. عملیات اصلی در RESTful API شامل GET (دریافت داده‌ها)، POST (ایجاد داده‌ها)، PUT (به‌روزرسانی داده‌ها) و DELETE (حذف داده‌ها) است.
- مثال ایجاد یک RESTful API با Flask:
     from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/users', methods=['GET'])
def get_users():
users = [{"name": "Ali", "age": 25}]
return jsonify(users)

@app.route('/users', methods=['POST'])
def add_user():
new_user = request.get_json()
return jsonify(new_user), 201

if __name__ == '__main__':
app.run(debug=True)

ادامه مسیر 🚀
شما اکنون با اصول اولیه برنامه‌نویسی بک‌اند آشنا شده‌اید. در پارت بعدی، به جزئیات بیشتر در زمینه ایجاد و مدیریت APIها و کار با فریمورک‌های پیشرفته‌تر می‌پردازیم.

🔗 [@programming_python_90]لینک کانال تلگرام
پارت ۳: ایجاد اولین API با Flask

سلام دوستان! 👋

در این پارت از آموزش بک‌اند با پایتون، به ایجاد اولین API با استفاده از فریمورک Flask می‌پردازیم. Flask یکی از فریمورک‌های محبوب برای توسعه وب با پایتون است که به شما اجازه می‌دهد به سرعت یک API بسازید. 🚀

نصب و راه‌اندازی Flask 🛠️
ابتدا باید Flask را نصب کنید. برای این کار، از دستور زیر استفاده کنید:
pip install Flask
ایجاد اولین API 🌐
حالا یک فایل جدید به نام app.py ایجاد کرده و کد زیر را در آن قرار دهید:
from flask import Flask, jsonify, request

app = Flask(name)
# مسیر برای دریافت اطلاعات کاربران
@app.route('/users', methods=['GET'])
def get_users():
users = [{"name": "Ali", "age": 25}, {"name": "Sara", "age": 30}]
return jsonify(users)
# مسیر برای اضافه کردن کاربر جدید
@app.route('/users', methods=['POST'])
def add_user():
new_user = request.get_json()
return jsonify(new_user), 201

if name == 'main':
app.run(debug=True)
- در این کد، ابتدا یک نمونه از Flask ایجاد می‌کنیم.
- سپس دو مسیر (route) تعریف می‌کنیم: یکی برای دریافت لیست کاربران (GET /users) و دیگری برای اضافه کردن کاربر جدید (POST /users).

اجرای برنامه 🚀
برای اجرای برنامه، در خط فرمان دستور زیر را اجرا کنید:
python app.py
حالا می‌توانید به https://127.0.0.1:5000/users بروید و لیست کاربران را مشاهده کنید یا از ابزارهایی مانند Postman برای ارسال درخواست‌های POST به سرور استفاده کنید.

توضیح اصول RESTful API 📡
REST (Representational State Transfer) یک سبک معماری برای طراحی APIهاست که از پروتکل HTTP برای ارتباط بین سرور و کلاینت استفاده می‌کند. چهار عملیات اصلی در RESTful API وجود دارد:
- GET: برای دریافت داده‌ها از سرور.
- POST: برای ارسال داده‌های جدید به سرور.
- PUT: برای به‌روزرسانی داده‌های موجود در سرور.
- DELETE: برای حذف داده‌ها از سرور.
پارت ۴: توسعه API پیشرفته با Flask

سلام دوستان! 👋

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

مدیریت درخواست‌ها و پاسخ‌ها 🌐
برای مدیریت بهتر درخواست‌ها و پاسخ‌ها، می‌توانیم از امکانات پیشرفته Flask استفاده کنیم.

1. مدیریت درخواست‌ها با روش‌های HTTP:
 
   @app.route('/users/<int:id>', methods=['GET', 'PUT', 'DELETE'])
   def manage_user(id):
       if request.iss.onethod == 'GET':
           user = get_user_by_id(id)  # تابع فرضی برای دریافت کاربر
           return jsonify(user)
       elif request.iss.onethod == 'PUT':
           data = request.get_json()
           update_user(id, data)  # تابع فرضی برای به‌روزرسانی کاربر
           return jsonify({'message': 'User updated successfully'})
       elif request.iss.onethod == 'DELETE':
           delete_user(id)  # تابع فرضی برای حذف کاربر
           return jsonify({'message': 'User deleted successfully'})
  

کار با JSON و ارسال داده‌ها 📊
استفاده از JSON برای ارسال و دریافت داده‌ها در APIها بسیار رایج است.

2. مثال ارسال داده‌ها در قالب JSON:
 
   @app.route('/add_user', methods=['POST'])
   def add_user():
       data = request.get_json()
       new_user = {"name": data['name'], "age": data['age']}
       add_user_to_db(new_user)  # تابع فرضی برای اضافه کردن کاربر به دیتابیس
       return jsonify(new_user), 201
  

پیاده‌سازی احراز هویت و مجوزها 🔐
احراز هویت (Authentication) و مجوزها (Authorization) از مهم‌ترین بخش‌های امنیتی در توسعه APIها هستند.

3. احراز هویت ساده با استفاده از توکن:
 
   from functools import wraps

   def token_required(f):
       @wraps(f)
       def decorated(*args, **kwargs):
           token = request.headers.get('x-access-token')
           if not token:
               return jsonify({'message': 'Token is missing!'}), 403
           try:
               data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
               current_user = get_user_by_id(data['id'])  # تابع فرضی برای دریافت کاربر
           except:
               return jsonify({'message': 'Token is invalid!'}), 403
           return f(current_user, *args, **kwargs)
       return decorated

   @app.route('/protected', methods=['GET'])
   @token_required
   def protected_route(current_user):
       return jsonify({'message': 'This is only available for authenticated users', 'user': current_user})
  

تست و دیباگ کردن API 🔧
تست کردن API و اطمینان از عملکرد صحیح آن بسیار مهم است. برای این کار می‌توانید از ابزارهایی مانند Postman یا Insomnia استفاده کنید.

ادامه مسیر 🚀
در پارت بعدی، به مدیریت پایگاه داده با استفاده از SQLAlchemy می‌پردازیم و نحوه تعریف مدل‌های دیتابیس و ایجاد جداول را بررسی می‌کنیم.
پارت ۵: توسعه پیشرفته API با Flask

سلام دوستان! 👋

در این پارت از آموزش بک‌اند با پایتون، به توسعه API پیشرفته‌تر با استفاده از Flask می‌پردازیم. این شامل مدیریت درخواست‌ها و پاسخ‌ها، کار با JSON، احراز هویت، و دیباگ کردن API می‌شود. 🚀

مدیریت درخواست‌ها و پاسخ‌ها 🌐

برای مدیریت بهتر درخواست‌ها و پاسخ‌ها، می‌توانیم از امکانات پیشرفته Flask استفاده کنیم.

1. مدیریت درخواست‌ها با روش‌های HTTP:
 
   from flask import Flask, request, jsonify

   app = Flask(__name__)

   @app.route('/users/<int:id>', methods=['GET', 'PUT', 'DELETE'])
   def manage_user(id):
       if request.iss.onethod == 'GET':
           user = get_user_by_id(id)  # تابع فرضی برای دریافت کاربر
           return jsonify(user)
       elif request.iss.onethod == 'PUT':
           data = request.get_json()
           update_user(id, data)  # تابع فرضی برای به‌روزرسانی کاربر
           return jsonify({'message': 'User updated successfully'})
       elif request.iss.onethod == 'DELETE':
           delete_user(id)  # تابع فرضی برای حذف کاربر
           return jsonify({'message': 'User deleted successfully'})

   def get_user_by_id(user_id):
       # یک تابع فرضی برای دریافت کاربر از دیتابیس
       pass

   def update_user(user_id, data):
       # یک تابع فرضی برای به‌روزرسانی اطلاعات کاربر در دیتابیس
       pass

   def delete_user(user_id):
       # یک تابع فرضی برای حذف کاربر از دیتابیس
       pass

   if __name__ == '__main__':
       app.run(debug=True)
  

کار با JSON و ارسال داده‌ها 📊

استفاده از JSON برای ارسال و دریافت داده‌ها در APIها بسیار رایج است.

2. مثال ارسال داده‌ها در قالب JSON:
 
   @app.route('/add_user', methods=['POST'])
   def add_user():
       data = request.get_json()
       new_user = {"name": data['name'], "age": data['age']}
       add_user_to_db(new_user)  # تابع فرضی برای اضافه کردن کاربر به دیتابیس
       return jsonify(new_user), 201

   def add_user_to_db(user):
       # یک تابع فرضی برای اضافه کردن کاربر به دیتابیس
       pass
  

پیاده‌سازی احراز هویت و مجوزها 🔐

احراز هویت (Authentication) و مجوزها (Authorization) از مهم‌ترین بخش‌های امنیتی در توسعه APIها هستند.

3. احراز هویت ساده با استفاده از توکن:
 
   from functools import wraps
   import jwt
   from flask import Flask, request, jsonify

   app = Flask(__name__)
   app.config['SECRET_KEY'] = 'your_secret_key'

   def token_required(f):
       @wraps(f)
       def decorated(*args, **kwargs):
           token = request.headers.get('x-access-token')
           if not token:
               return jsonify({'message': 'Token is missing!'}), 403
           try:
               data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
               current_user = get_user_by_id(data['id'])  # تابع فرضی برای دریافت کاربر
           except:
               return jsonify({'message': 'Token is invalid!'}), 403
           return f(current_user, *args, **kwargs)
       return decorated

   @app.route('/protected', methods=['GET'])
   @token_required
   def protected_route(current_user):
       return jsonify({'message': 'This is only available for authenticated users', 'user': current_user})

   if __name__ == '__main__':
       app.run(debug=True)
  

دیباگ کردن API 🔧

تست کردن API و اطمینان از عملکرد صحیح آن بسیار مهم است. برای این کار می‌توانید از ابزارهایی مانند Postman یا Insomnia استفاده کنید.

ادامه مسیر 🚀

در پارت بعدی، به مدیریت پایگاه داده با استفاده از SQLAlchemy می‌پردازیم و نحوه تعریف مدل‌های دیتابیس و ایجاد جداول را بررسی می‌کنیم.