Python3
201 subscribers
102 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
🌐 آموزش ایمن کردن سایت‌ها با پایتون 🐍

در این آموزش یاد می‌گیریم که چگونه با استفاده از پایتون امنیت سایت خود را افزایش دهیم. امنیت سایت یکی از مهم‌ترین جنبه‌های توسعه وب است که باید همیشه مورد توجه قرار گیرد. 💻🔒

۱. نصب کتابخانه‌های مورد نیاز 📦

ابتدا باید برخی کتابخانه‌ها را نصب کنیم. برای این کار از دستور زیر استفاده کنید:

pip install flask flask-sslify

۲. ایجاد یک سرور ساده با Flask 🌐

یک فایل پایتون جدید بسازید و کد زیر را داخل آن قرار دهید:

from flask import Flask
from flask_sslify import SSLify

app = Flask(__name__)
sslify = SSLify(app)

@app.route('/')
def home():
return "این یک سایت امن است! 🔐"

if __name__ == '__main__':
app.run(ssl_context=('cert.pem', 'key.pem'))

۳. ایجاد گواهینامه SSL 📜

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

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

۴. توضیح دستورات ایجاد گواهینامه 📋

- req -x509: این دستور گواهینامه خود امضا شده ایجاد می‌کند.
- -newkey rsa:4096: این پارامتر یک کلید جدید با طول 4096 بیت ایجاد می‌کند.
- -keyout key.pem: کلید خصوصی را در فایل key.pem ذخیره می‌کند.
- -out cert.pem: گواهینامه را در فایل cert.pem ذخیره می‌کند.
- -days 365: گواهینامه به مدت 365 روز معتبر خواهد بود.
- -nodes: بدون رمزگذاری کلید خصوصی.

۵. اجرای سرور 🌍

حالا می‌توانید سرور خود را اجرا کنید:

python your_file_name.py

۶. تست سایت ایمن شده 🔍

مرورگر خود را باز کرده و به آدرس https://127.0.0.1:5000 بروید. باید پیغام "این یک سایت امن است! 🔐" را ببینید.

۷. نکات پایانی برای افزایش امنیت سایت 📝

1. امنیت رمزها: همیشه از رمزهای قوی برای گواهینامه‌ها و کلیدهای خود استفاده کنید.
2. بروزرسانی منظم: برنامه‌ها و کتابخانه‌های خود را به‌روز نگه دارید.
3. پیکربندی مناسب: از پیکربندی‌های امنیتی مناسب در سرور خود استفاده کنید.
4. مراقب حملات XSS و SQL Injection باشید: اطمینان حاصل کنید که ورودی‌های کاربر را به درستی اعتبارسنجی و استریل کنید.
5. استفاده از فایروال و ابزارهای امنیتی: از ابزارهای امنیتی مانند فایروال‌ها برای حفاظت از سایت خود استفاده کنید.



با استفاده از این آموزش ساده می‌توانید سایت‌های خود را با استفاده از پایتون ایمن کنید و امنیت کاربران خود را افزایش دهید. موفق باشید! 🌟

🔗https://t.iss.one/hamidpython123


#امنیت #پایتون #وب_دیولوپمنت #SSL #HTTPS #آموزش
👍2
آموزش کتابخانه Splinter در پایتون 🌐🐍 (پارت 1)

کتابخانه Splinter یکی از ابزارهای قدرتمند برای اتوماسیون و تعامل با مرورگرهای وب در پایتون است. Splinter اولین بار در سال 2011 معرفی شد و هدف اصلی آن ساده‌سازی فرآیند اتوماسیون مرورگرهای وب برای تست و استخراج اطلاعات است. این کتابخانه قابلیت کار با مرورگرهای مختلفی مثل Chrome، Firefox، Safari و حتی مرورگرهای بدون رابط گرافیکی مانند PhantomJS و zzzzz WebKit را دارد. با استفاده از Splinter، می‌توانیم به‌راحتی کارهایی مانند پر کردن فرم‌ها، کلیک بر روی دکمه‌ها و استخراج اطلاعات از وب‌سایت‌ها را انجام دهیم. در این آموزش، با نحوه نصب و استفاده از این کتابخانه آشنا خواهیم شد. 🚀

نصب Splinter 📦

برای شروع، ابتدا باید کتابخانه Splinter و مرورگری که قصد استفاده از آن را داریم (مثلاً Chrome) نصب کنیم. مراحل نصب به‌صورت زیر است:

# نصب Splinter
!pip install splinter

# نصب WebDriver برای Chrome
!pip install chromedriver-autoinstaller

استفاده اولیه از Splinter 🌟

در این بخش، به شما نشان خواهیم داد که چگونه یک مرورگر را راه‌اندازی کنید و یک وب‌سایت را باز کنید. در این مثال، از Chrome استفاده می‌کنیم:

from splinter import Browser
import chromedriver_autoinstaller

# نصب خودکار chromedriver
chromedriver_autoinstaller.install()

# راه‌اندازی مرورگر
with Browser('chrome') as browser:
# باز کردن یک وب‌سایت
browser.visit('https://example.com')

# بررسی اینکه صفحه به‌درستی بارگذاری شده است
if browser.is_text_present('Example Domain'):
print("صفحه به‌درستی بارگذاری شد!")
else:
print("خطایی در بارگذاری صفحه رخ داده است.")

توضیحات:
1. نصب Splinter و chromedriver-autoinstaller:
- با استفاده از !pip install splinter، کتابخانه Splinter را نصب می‌کنیم.
- با استفاده از !pip install chromedriver-autoinstaller، ابزار نصب خودکار WebDriver برای Chrome را نصب می‌کنیم.

2. وارد کردن کتابخانه‌ها:
- from splinter import Browser: از کتابخانه Splinter برای وارد کردن کلاس Browser استفاده می‌کنیم.
- import chromedriver_autoinstaller: ابزار نصب خودکار chromedriver را وارد می‌کنیم.

3. نصب خودکار chromedriver:
- chromedriver_autoinstaller.install(): این خط کد بررسی می‌کند که آیا chromedriver نصب شده است یا نه، و در صورت نیاز آن را نصب می‌کند.

4. راه‌اندازی مرورگر:
- with Browser('chrome') as browser: مرورگر Chrome را باز می‌کنیم.
- browser.visit('https://example.com'): وب‌سایت مورد نظر را بازدید می‌کنیم.
- if browser.is_text_present('Example Domain'): بررسی می‌کنیم که آیا متن "Example Domain" در صفحه وجود دارد یا نه.
- print("صفحه به‌درستی بارگذاری شد!"): در صورت وجود متن، پیام موفقیت‌آمیز بودن بارگذاری را چاپ می‌کنیم.
- print("خطایی در بارگذاری صفحه رخ داده است."): در صورت عدم وجود متن، پیام خطا را چاپ می‌کنیم.

این مراحل پایه‌ای، به شما نشان می‌دهد که چگونه می‌توانید با Splinter یک مرورگر را باز کنید و یک وب‌سایت را بازدید کنید. در پارت بعدی، نحوه تعامل با عناصر وب‌سایت و استخراج اطلاعات را بررسی خواهیم کرد. 📄

(اینم کانال ما)

#پایتون #برنامه‌نویسی #اتوماسیون #وب
آموزش کتابخانه Splinter در پایتون 🌐🐍 (پارت 2)

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

تعامل با عناصر وب‌سایت 🖱️

یکی از قابلیت‌های مهم Splinter، امکان تعامل با عناصر مختلف وب‌سایت است. در این مثال، یک فرم ساده را پر می‌کنیم و دکمه‌ای را کلیک می‌کنیم:

# پر کردن یک فرم
browser.fill('username', 'your_username')
browser.fill('password', 'your_password')

# کلیک بر روی دکمه ورود
button = browser.find_by_name('login').first
button.click()

# بررسی موفقیت‌آمیز بودن ورود
if browser.is_text_present('Welcome'):
print("ورود موفقیت‌آمیز بود!")
else:
print("ورود ناموفق بود.")

توضیحات:
1. پر کردن فرم:
- browser.fill('username', 'your_username'): فیلد متنی با نام 'username' را با مقدار 'your_username' پر می‌کنیم.
- browser.fill('password', 'your_password'): فیلد متنی با نام 'password' را با مقدار 'your_password' پر می‌کنیم.

2. کلیک بر روی دکمه:
- button = browser.find_by_name('login').first: دکمه‌ای با نام 'login' را پیدا کرده و اولین مورد آن را انتخاب می‌کنیم.
- button.click(): بر روی دکمه کلیک می‌کنیم.

3. بررسی موفقیت‌آمیز بودن ورود:
- if browser.is_text_present('Welcome'): بررسی می‌کنیم که آیا متن 'Welcome' در صفحه وجود دارد یا نه.
- print("ورود موفقیت‌آمیز بود!"): در صورت وجود متن، پیام موفقیت‌آمیز بودن ورود را چاپ می‌کنیم.
- print("ورود ناموفق بود."): در صورت عدم وجود متن، پیام خطا را چاپ می‌کنیم.

استخراج اطلاعات از وب‌سایت 🕵️‍♂️

با استفاده از Splinter می‌توانیم اطلاعات مورد نظر خود را از وب‌سایت‌ها استخراج کنیم. در این مثال، تمام لینک‌های موجود در صفحه را استخراج می‌کنیم:

# استخراج تمام لینک‌های موجود در صفحه
links = browser.find_by_tag('a')

# چاپ متن و URL هر لینک
for link in links:
print(link.text, link['href'])

توضیحات:
1. استخراج لینک‌ها:
- links = browser.find_by_tag('a'): تمام عناصر با تگ 'a' (لینک‌ها) را در صفحه پیدا کرده و در متغیری به نام links ذخیره می‌کنیم.

2. چاپ متن و URL هر لینک:
- for link in links: یک حلقه برای دسترسی به هر لینک در لیست links ایجاد می‌کنیم.
- print(link.text, link['href']): متن و URL هر لینک را چاپ می‌کنیم.

بستن مرورگر 🛑

در پایان کار با مرورگر، حتماً باید مرورگر را ببندیم تا منابع سیستم آزاد شوند:

browser.quit()

توضیحات:
- browser.quit(): این خط کد مرورگر را می‌بندد و منابع سیستم را آزاد می‌کند.

نتیجه‌گیری 🎉

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

(اینم کانال ما)

#پایتون #برنامه‌نویسی #اتوماسیون #وب
👍1
📚 آموزش ساخت وب سرویس RESTful با FastAPI در پایتون 🐍

سلام دوستان ! امروز قصد داریم یک وب سرویس RESTful با استفاده از فریم‌ورک FastAPI در پایتون بسازیم. این فریم‌ورک به خاطر سرعت بالا و سادگی در استفاده، بسیار محبوب است. 🎓🚀

این آموزش شامل مراحل نصب و راه‌اندازی FastAPI، ایجاد مسیرهای (routes) مختلف و مدیریت خطاها است.

🌟 گام‌های ساخت وب سرویس RESTful:

1. نصب FastAPI و Uvicorn: ابتدا باید FastAPI و Uvicorn را نصب کنیم. Uvicorn یک سرور ASGI است که برای اجرای برنامه‌های FastAPI استفاده می‌شود.


    pip install fastapi uvicorn

2. نوشتن کد: کد زیر را در یک فایل به نام main.py کپی کنید. این کد یک وب سرویس ساده با مسیرهای مختلف ایجاد می‌کند.


    from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional

app = FastAPI()

# مدل داده
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None

# مسیر برای صفحه اصلی
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI"}

# مسیر برای خواندن آیتم‌ها
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
if item_id > 1000:
raise HTTPException(status_code=404, detail="Item not found")
return {"item_id": item_id, "q": q}

# مسیر برای ایجاد آیتم جدید
@app.post("/items/")
def create_item(item: Item):
return {"name": item.name, "price": item.price, "tax": item.tax}

# اجرای برنامه
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)

📌 توضیحات:
- ابتدا کتابخانه‌های FastAPI، HTTPException و BaseModel را وارد می‌کنیم.
- یک نمونه از FastAPI به نام app ایجاد می‌کنیم.
- یک مدل داده به نام Item با استفاده از Pydantic تعریف می‌کنیم.
- مسیرهای مختلفی برای خواندن و ایجاد آیتم‌ها تعریف می‌کنیم.
- در نهایت، از Uvicorn برای اجرای برنامه استفاده می‌کنیم.

🔧 نکات:
- مدیریت خطاها: با استفاده از HTTPException می‌توانیم خطاهای مختلف را مدیریت کنیم و پیام‌های مناسب به کاربران برگردانیم.
- پشتیبانی از تایپ‌ها: FastAPI به طور خودکار از تایپ‌ها برای اعتبارسنجی داده‌ها و مستندسازی API استفاده می‌کند.
- مستندسازی خودکار: با رفتن به آدرس /docs در مرورگر، می‌توانید مستندات خودکار API را ببینید.

🚀 اجرای برنامه:
uvicorn main:app --reload

با این روش ساده و سریع، می‌توانید یک وب سرویس RESTful کاربردی با پایتون و FastAPI ایجاد کنید. 😃

[اینجا برلی اموزشای بیشتر کلیک کنید]

#پایتون #FastAPI #آموزش_پایتون #برنامه_نویسی #وب_سرویس #RESTful #آموزش_پیشرفته #توسعه_نرم_افزار
👍1
🌟 معرفی نسخه جدید و شگفت‌انگیز htmlpy11fa pro ! 🌟

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

htmlpy11fa چیه؟
htmlpy11fa یک ابزار قدرتمند برای ساخت صفحات وب است که با استفاده از آن می‌توانید به راحتی و بدون نیاز به دانش عمیق برنامه‌نویسی، صفحات وب حرفه‌ای بسازید. این نسخه تمامی امکانات لازم برای طراحی وب‌سایت‌های مدرن را در اختیار شما قرار می‌دهد.

💼 مزایا و ویژگی‌های بی‌نظیر htmlpy11fa:

1. سادگی در استفاده:
htmlpy11fa به گونه‌ای طراحی شده که حتی کسانی که تازه وارد دنیای برنامه‌نویسی وب شده‌اند، بتوانند به راحتی از آن استفاده کنند. با چند خط کد ساده می‌توانید صفحات زیبایی ایجاد کنید.

2. انعطاف‌پذیری بالا:
این ابزار به شما اجازه می‌دهد تا هر عنصری که در یک صفحه وب نیاز دارید را به راحتی اضافه کنید؛ از تصاویر و لینک‌ها گرفته تا فرم‌ها و جداول.

3. طراحی واکنش‌گرا:
صفحات ساخته شده با htmlpy11fa به صورت خودکار برای تمامی دستگاه‌ها (موبایل، تبلت و دسکتاپ) بهینه می‌شوند. دیگر نگران نمایش نادرست سایت‌تان در دستگاه‌های مختلف نباشید! 📱💻

4. پشتیبانی از جاوا اسکریپت و CSS:
شما می‌توانید به راحتی اسکریپت‌ها و سبک‌های دلخواه خود را به صفحات اضافه کنید و صفحات تعاملی و جذاب‌تری بسازید.

5. کامپوننت‌های قابل استفاده مجدد:
با قابلیت تعریف و استفاده از کامپوننت‌ها، می‌توانید کدهای خود را سازماندهی کرده و در پروژه‌های مختلف از آن‌ها استفاده کنید. 🔄

6. یکپارچگی با API ها:
با استفاده از htmlpy11fa می‌توانید به سادگی داده‌ها را از API های مختلف دریافت و در صفحات خود نمایش دهید. این ویژگی برای ساخت وب‌سایت‌های دینامیک بسیار کاربردی است.

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

8. پشتیبانی از انیمیشن‌ها:
با htmlpy11fa می‌توانید انیمیشن‌های جذاب به صفحات خود اضافه کنید و تجربه کاربری بهتری برای بازدیدکنندگان فراهم کنید.

چرا htmlpy11fa؟
- کاربرپسند: برای تمامی کاربران، از مبتدی تا حرفه‌ای.
- کاملاً فارسی: سازگاری کامل با زبان فارسی.
- منبع‌باز: کدهای این نسخه به صورت منبع‌باز منتشر شده و شما می‌توانید آن‌ها را مطابق نیاز خود تغییر دهید.

🔔 همین حالا امتحان کنید!
با استفاده از htmlpy11fa می‌توانید به راحتی و در کمترین زمان ممکن، صفحات وب حرفه‌ای بسازید. این ابزار تمامی امکانات لازم را برای شما فراهم کرده تا ایده‌های خلاقانه خود را به واقعیت تبدیل کنید. 🌐

📢 به دوستان خود معرفی کنید و از تجربیات‌تان در ساخت صفحات وب با استفاده از htmlpy11fa در کامنت‌ها بگویید.

#htmlpy11fa #طراحی_وب #وب_سایت #برنامه_نویسی #واکنش_گرا #کامپوننت #جاوا_اسکریپت #CSS #احراز_هویت #انیمیشن #API #توسعه_وب #ابزار_وب #منبع_باز #فارسی

با htmlpy11fa دنیای وب را تسخیر کنید! 🌍🔧

◀️◀️کانال تلگرام مارو دنبال کنید ▶️▶️
page.add_authentication("/login", "/logout", "/profile")

13. یکپارچه‌سازی API

با استفاده از متد add_api_integration می‌تونید داده‌ها رو از APIهای خارجی دریافت یا ارسال کنید. مثال زیر نحوه دریافت داده از یک API و نمایش آن در یک عنصر HTML رو نشون می‌ده:

page.add_api_integration("https://api.example.com/data", "dataElement")

14. افزودن روتر

با استفاده از متد add_route می‌تونید روترهای ساده‌ای برای صفحات وب خود ایجاد کنید. مثال زیر نحوه افزودن دو مسیر و کامپوننت‌های مربوط به آن‌ها رو نشون می‌ده:

page.add_route("/", "mainPage")
page.add_route("/about", "aboutPage")

page.add_component("mainPage", [("h2", "صفحه اصلی", {})])
page.add_component("aboutPage", [("h2", "درباره ما", {})])

15. ذخیره فایل HTML

در نهایت، می‌تونید فایل HTML ساخته شده رو ذخیره کنید. مثال زیر نحوه ذخیره صفحه وب به نام sample.html رو نشون می‌ده:

page.save_html("sample.html")



نتیجه

با htmlpy11، می‌تونید به راحتی و با استفاده از کدهای پایتون، صفحات وب زیبا و کارآمد بسازید. امیدوارم از این ابزار لذت ببرید! 🥳

(کانال ما)

#آموزش_برنامه_نویسی #پایتون #طراحی_وب #htmlpy11 #وب_سایت #کدنویسی #برنامه_نویس #توسعه_دهنده #ابزار_کاربردی #صفحه_وب
🌟 معرفی htmlpy12 - ابزار پیشرفته‌ی طراحی وب! 🌟

سلام دوستان عزیز! 👋 با افتخار نسخه جدید و پیشرفته htmlpy12 را به شما معرفی می‌کنیم! این نسخه از11 htmlpy با ویژگی‌های بیشتر و قابلیت‌های به‌روزتر آماده شده است تا به شما در ساخت صفحات وب بی‌نظیر کمک کند. 🚀

htmlpy12 چیست؟
htmlpy12 یک ابزار قدرتمند برای تولید و مدیریت کد HTML، CSS و JavaScript است که به صورت دینامیک و قابل توسعه طراحی شده است. این نسخه با بهبودهای فراوان نسبت به نسخه‌های قبلی، امکانات جدیدی را ارائه می‌دهد که برای توسعه وب‌سایت‌های پیچیده و نیازمند به انعطاف بیشتر، بسیار مفید است.

🌟 ویژگی‌های htmlpy12 در مقایسه با htmlpy11fa:
1. انعطاف بیشتر در اضافه کردن عناصر دینامیک: htmlpy12 از امکانات بهبود یافته‌ای برای اضافه کردن تگ‌های HTML و عناصر دیگر به صفحات وب به صورت دینامیک برخوردار است.

2. مدیریت پیشرفته استایل‌ها و اسکریپت‌ها: با htmlpy12، می‌توانید به راحتی استایل‌های CSS و اسکریپت‌های JavaScript را به صفحات خود اضافه کرده و آن‌ها را به صورت فایل‌های مستقل ذخیره کنید.

3. پشتیبانی از کامپوننت‌ها و پلاگین‌ها: htmlpy12 به شما امکان می‌دهد که کامپوننت‌های قابل استفاده مجدد و پلاگین‌ها را به صفحات خود اضافه کنید و از آن‌ها در پروژه‌های مختلف استفاده کنید.

4. امکان استفاده از اسکریپت‌ها و استایل‌های سفارشی: htmlpy12 قابلیت افزودن اسکریپت‌ها و استایل‌های سفارشی را برای شما فراهم می‌آورد تا بتوانید صفحات تعاملی و جذاب‌تری بسازید.

5. نوشتن و ذخیره‌سازی فایل‌های CSS و JavaScript: با htmlpy12، می‌توانید به صورت خودکار فایل‌های CSS و JavaScript خود را نوشته و ذخیره کنید، که این امر به بهبود سازماندهی و توسعه پروژه‌های وب کمک می‌کند.

6. قابلیت تولید کد HTML نهایی: htmlpy12 از قالب‌های پیش‌فرض برای تولید کد HTML نهایی استفاده می‌کند که شامل امکاناتی برای نمایش عناصر دینامیک و کامپوننت‌های ویژه است.

htmlpy12 با تمامی امکانات خود، به شما کمک می‌کند تا به راحتی و با کیفیت، صفحات وب پویا و مدرن را ایجاد کنید. برای اطلاعات بیشتر و نمونه‌های دیگر، به مستندات مراجعه کنید.

🔔 همین حالا htmlpy12 را امتحان کنید و از توانایی‌هایش برای ساخت وب‌سایت‌های خود لذت ببرید!

#htmlpy12 #طراحی_وب #وب_سایت #برنامه_نویسی #کامپوننت #جاوا_اسکریپت #CSS #پلاگین #توسعه_وب #ابزار_وب
👍1
آموزش استفاده از ماژول Scrapy 🕷

Scrapy یکی از قدرتمندترین ماژول‌های پایتون برای وب اسکرپینگ است. این ابزار عالی به شما کمک می‌کند تا داده‌ها را از وب‌سایت‌ها استخراج کنید. 🚀

وب اسکرپینگ به فرآیند استخراج اطلاعات از وب‌سایت‌ها گفته می‌شود که معمولاً به صورت خودکار انجام می‌شود. Scrapy این کار را بسیار آسان و کارآمد می‌کند.

مرحله 1: نصب Scrapy 🛠

ابتدا باید این ماژول را نصب کنید. می‌توانید از دستور زیر استفاده کنید:
pip install scrapy

این دستور Scrapy را روی سیستم شما نصب می‌کند.

مرحله 2: ایجاد پروژه Scrapy 📁
یک پروژه جدید ایجاد کنید:
scrapy startproject myproject

به جای myproject نام پروژه خود را وارد کنید. این دستور ساختار اولیه پروژه Scrapy را ایجاد می‌کند.

مرحله 3: ایجاد Spider 🕸
به دایرکتوری پروژه بروید و یک Spider جدید ایجاد کنید:
cd myproject
scrapy genspider example example.com

این دستور یک Spider با نام example ایجاد می‌کند که وب‌سایت example.com را هدف قرار می‌دهد.

مرحله 4: نوشتن کد Spider ✍️
فایل example.py را باز کنید و کد Spider خود را بنویسید. این یک مثال ساده است:
import scrapy

class ExampleSpider(scrapy.Spider):
name = "example" # نام Spider
start_urls = [
'https://example.com', # URL شروع
]

def parse(self, response):
for title in response.css('title'): # انتخاب عنوان صفحه با استفاده از CSS Selector
yield {'title': title.get()} # استخراج عنوان و ذخیره آن

- import scrapy: ماژول Scrapy را وارد می‌کند.
- name: نام Spider که باید یکتا باشد.
- start_urls: لیستی از URL هایی که Spider باید از آنها شروع به کار کند.
- parse: متدی که برای پردازش پاسخ از URL های شروع استفاده می‌شود.
- response.css('title'): انتخاب عنوان صفحه با استفاده از CSS Selector.
- yield: استخراج و بازگشت داده‌ها.

مرحله 5: اجرای Spider 🎬

حالا می‌توانید Spider خود را اجرا کنید و داده‌ها را استخراج کنید:
scrapy crawl example -o output.json

این دستور Spider را اجرا کرده و داده‌های استخراج شده را در یک فایل JSON ذخیره می‌کند.

نکات تکمیلی:

- CSS Selectors: برای انتخاب عناصر HTML از CSS Selectors استفاده کنید.
- XPath: می‌توانید از XPath نیز برای انتخاب عناصر استفاده کنید.
- Pipelines: برای پردازش و ذخیره‌سازی داده‌های استخراج شده از Pipelines استفاده کنید.

استفاده از Scrapy می‌تواند استخراج داده‌ها را به شدت ساده و کارآمد کند. امیدوارم این آموزش برای شما مفید باشد! 😊

(کانال تلگرامی ما)

#Python #Scrapy #وب_اسکرپینگ #آموزش #برنامه_نویسی
🚀 آموزش فریمورک Pyramid - پارت 1: مقدمه و نصب

📚 مقدمه
Pyramid یک فریمورک وب مدرن و قدرتمند برای پایتون است که به شما امکان می‌دهد تا برنامه‌های وب ساده و پیچیده را به راحتی ایجاد کنید. یکی از ویژگی‌های برجسته Pyramid این است که بسیار انعطاف‌پذیر است و به شما اجازه می‌دهد که فقط از آن ویژگی‌هایی که نیاز دارید استفاده کنید، بدون اینکه پیچیدگی‌های اضافی را متحمل شوید.

🎯 اهداف پارت 1:
- معرفی فریمورک Pyramid
- نصب و پیکربندی اولیه
- ایجاد اولین برنامه وب ساده

1️⃣ نصب و پیکربندی
برای شروع کار با Pyramid، ابتدا باید آن را نصب کنیم. این کار را می‌توان با استفاده از pip انجام داد.

pip install "pyramid==2.0"

> 💡 نکته: بهتر است از یک محیط مجازی (virtual environment) استفاده کنید تا وابستگی‌های پروژه‌تان جدا از دیگر پروژه‌ها باشد.

برای ایجاد یک محیط مجازی:

python -m venv myenv
source myenv/bin/activate # برای کاربران لینوکس یا مک
myenv\Scripts\activate # برای کاربران ویندوز

سپس Pyramid را نصب کنید.

2️⃣ ایجاد اولین پروژه Pyramid
بعد از نصب Pyramid، حالا می‌خواهیم یک پروژه جدید ایجاد کنیم. با استفاده از دستورات زیر می‌توانید یک پروژه جدید به نام myproject بسازید:

pcreate -s starter myproject

🎉 این دستور یک پروژه جدید با یک ساختار پیش‌فرض ایجاد می‌کند که شامل فایل‌های پیکربندی، یک برنامه نمونه و دیگر فایل‌های ضروری است.


📢 برای دیدن ادامه آموزش‌ها به کانال ما بپیوندید: [python3]

#پایتون #آموزش_پایتون #برنامه‌نویسی #Pyramid #وب #توسعه_وب
🚀 آموزش فریمورک Pyramid - پارت 2: ایجاد View و Template

🎯 اهداف پارت 2:
- معرفی مفهوم View و Template در Pyramid
- ایجاد یک View ساده
- استفاده از Template برای نمایش داده‌ها

1️⃣ آشنایی با View در Pyramid
در فریمورک Pyramid، View به بخشی از برنامه شما اشاره دارد که وظیفه پردازش درخواست‌های ورودی و تولید پاسخ را بر عهده دارد. به عبارت دیگر، View جایی است که منطق برنامه‌نویسی شما در آن قرار دارد.

🔹 برای ایجاد یک View، باید یک تابع یا کلاس تعریف کنید که درخواست‌های HTTP را دریافت کند و پاسخ مناسب را برگرداند.

2️⃣ ایجاد اولین View
بیایید یک View ساده ایجاد کنیم که یک متن ساده "Hello, Pyramid!" را برگرداند. برای این کار، به فایل __init__.py بروید و یک View جدید به شکل زیر اضافه کنید:

from pyramid.response import Response
from pyramid.view import view_config

@view_config(route_name='home')
def my_view(request):
return Response('Hello, Pyramid!')

🔍 توضیح کد:
- @view_config: این دکوراتور به Pyramid می‌گوید که این تابع یک View است و باید به درخواست‌های مربوط به مسیر home پاسخ دهد.
- Response: کلاس Response برای ساختن پاسخ‌های HTTP استفاده می‌شود.

3️⃣ تعریف مسیر (Route)
برای اینکه View ما کار کند، نیاز داریم که یک مسیر (Route) برای آن تعریف کنیم. مسیرها به درخواست‌ها این امکان را می‌دهند که به View مناسب هدایت شوند.

🔸 به فایل __init__.py بروید و کد زیر را برای تعریف مسیر اضافه کنید:

def main(global_config, **settings):
config = Configurator(settings=settings)
config.add_route('home', '/')
config.scan()
return config.make_wsgi_app()

🔍 توضیح کد:
- config.add_route('home', '/'): این خط مسیر home را به آدرس / (صفحه اصلی) نگاشت می‌کند.
- config.scan(): این متد تمام Viewهایی که با @view_config تعریف شده‌اند را پیدا می‌کند.

4️⃣ آشنایی با Template در Pyramid
Templates (قالب‌ها) به شما این امکان را می‌دهند که محتوا و داده‌ها را از View به شکل HTML به کاربران نمایش دهید. در Pyramid، از قالب‌هایی مانند Jinja2 یا Chameleon استفاده می‌شود.

🔹 در این مثال، ما از قالب Chameleon استفاده می‌کنیم. ابتدا باید آن را نصب کنید:

pip install pyramid_chameleon

5️⃣ استفاده از Template برای نمایش داده‌ها
بیایید View قبلی را تغییر دهیم تا از یک Template برای نمایش داده‌ها استفاده کنیم. init__init__.py بروید و کد را به شکل زیر تغییر دهید:

from pyramid.view import view_config

@view_config(route_name='home', renderer='templates/mytemplate.pt')
def my_view(request):
return {'name': 'Pyramid'}

🔍 توضیح کد:
- renderer='templates/mytemplate.pt': این قسمت به Pyramid می‌گوید که از قالب mytemplate.pt برای رندر کردن View استفاده کند.
- return {'name': 'Pyramid'}: داده‌ای که به قالب ارسال می‌شود.

6️⃣ ایجاد فایل Template
حالا فایل قالب را ایجاد کنید. به مسیر templates/ بروید و فایل mytemplate.pt را ایجاد کنید و محتوای زیر را در آن قرار دهید:

<html>
<head>
<title>My Pyramid App</title>
</head>
<body>
<h1>Hello, ${name}!</h1>
</body>
</html>

🔍 توضیح کد:
- ${name}: متغیری که از View به قالب ارسال شده و جایگزین می‌شود.

🎉 حالا اگر برنامه را اجرا کنید، باید پیامی با متن "Hello, Pyramid!" را در صفحه اصلی ببینید که از طریق یک Template رندر شده است.



📢 برای دیدن ادامه آموزش‌ها به کانال ما بپیوندید: [python3]

#پایتون #آموزش_پایتون #برنامه‌نویسی #Pyramid #وب #توسعه_وب
8️⃣ ذخیره‌سازی داده‌ها در دیتابیس
در نهایت، باید داده‌های فرم را در دیتابیس ذخیره کنیم. به View contact_view برگردید و کد زیر را اضافه کنید:

from .models import Contact

@view_config(route_name='contact', renderer='templates/contact.pt')
def contact_view(request):
form = create_contact_form().render()

if request.iss.onethod == 'POST':
controls = request.POST.items()
try:
appstruct = create_contact_form().validate(controls)
new_contact = Contact(name=appstruct['name'], email=appstruct['email'])
session.add(new_contact)
session.commit()
except deform.ValidationFailure as e:
form = e.render()

return {'form': form}

🔍 توضیح کد:
- new_contact: یک شیء جدید از کلاس Contact ایجاد می‌کند و داده‌ها را ذخیره می‌کند.
- session.add(): شیء جدید را به session اضافه می‌کند.
- session.commit(): تغییرات را در دیتابیس اعمال می‌کند.

🎉 حالا شما یک فرم کاربردی دارید که داده‌ها را می‌گیرد و در دیتابیس ذخیره می‌کند!


📢 برای دیدن ادامه آموزش‌ها به کانال ما بپیوندید: [python3]

#پایتون #آموزش_پایتون #برنامه‌نویسی #Pyramid #وب #توسعه_وب
👍1
def main(global_config, **settings):
config = Configurator(settings=settings)
config.add_route('api_users', '/api/users')
config.add_route('api_user', '/api/users/{id}')
config.scan()
return config.make_wsgi_app()

🔍 توضیح کد:
- config.add_route('api_user', '/api/users/{id}'): مسیر api_user را به آدرس /api/users/{id} نگاشت می‌کند که در آن {id} شناسه کاربر است.

7️⃣ تست API
حالا می‌توانید از ابزارهایی مثل Postman یا cURL برای تست API خود استفاده کنید. برای مثال:

- GET: دریافت تمام کاربران: GET /api/users
- POST: افزودن کاربر جدید: POST /api/users با داده‌های JSON:

  {
"name": "John Doe",
"email": "[email protected]"
}

- DELETE: حذف کاربر با ID مشخص: DELETE /api/users/1

🎉 حالا شما یک REST API ساده برای مدیریت کاربران دارید که با Pyramid و SQLAlchemy پیاده‌سازی شده است!


📢 برای دیدن ادامه آموزش‌ها به کانال ما بپیوندید: [python3]

#پایتون #آموزش_پایتون #برنامه‌نویسی #Pyramid #وب #توسعه_وب #REST_API #دیتابیس