آموزش هایی برای پایتون ، جنگو و توسعه ی وب اپلیکیشن

نویسنده : آرش ارزنده نیا

در ابتدا تنها یک متخصص شبکه های مایکروسافتی بودم ، کم کم به دنیای سیسکو و محیط های کامند لاینی علاقه مند شدم ، همزمان لینوکس رو هم توی پروژه هام دخیل میکردم ، چون در زمان دانشجویی تسلط خوبی روی طراحی وب سایت داشتم شروع کردم به نوشتن نرم افزارهای تحت وب ، تا مدت ها با php تمام پروژه هامو انجام میدادم ، گهگاهی هم با سی شارپ ، تا اینکه سوییچ کردم روی پایتون ، از اینجا به بعدش رو با هم تو این بلاگ میگذرونیم

تغییر پسورد کاربران جنگو به صورت Manual


حتماً برایتان پیش خواهد آمد که رمز عبور ادمین (super user) جنگو را فراموش میکنید و نمیتوانید به قسمت admin لاگین کنید. یا مثل من به ذخیره شدن کلمه عبور و نام کاربری بر روی گوگل کروم خودتان عادت دارید و در جایی که گوگل کروم خود را ندارید نمیتوانید وارد پنل مدیریتی جنگو بشوید ، یا سناریوهای مختلف دیگر ، مثلاً همین امروز بر روی یکی از اتوماسیون هایی که نوشته بودم کاربر نمیتوانست کلمه عبورش را تغییر دهد (عدم توانایی کافی در کار با اینترنت توسط کاربران یکی از مواردی است که بسیار زجر آور خواهد کرد Troubleshooting های شما رو) بنابراین باید راهی پیدا کنید برای تغییر کلمه عبور کاربران جنگویی. جنگو تمامی کلمه های عبور را به صورت ‌Hash شده ذخیره میکند و حتی از طریق پنل مدیریتی ادمین نیز قابل فهمیدن نخواهد بود ، در‌واقع موقعی که کاربر کلمه عبور خود را به برای احراز هویت (Authentication) به سمت سرور ارسال میکند ، جنگو ابتدا پسورد ارسالی کاربر ‌را Hash میکند و سپس آن را با مقدار Hash پسورد کاربر که بر روی دیتابیس ذخیره شده است مقایسه میکند و اگر این مقادیر یکسان بود کاربر اجازه ی ورود را خواهد داشت. و اما راه حل:

۱ – ابتدا باید به سرور خود لاگین کنیم (احتمالاً از طریق ssh)

۲- به قسمت shell جنگو باید بریم ، اگر سرورتان virtualenv دارد ابتدا virtualenv مربوط به جنگوی خود را active بکنید سپس به دایرکتوری جنگوی خود بروید (جایی که فایل manage.py) شما آنجا قرار دارد.

$ . /path/to/virtualenv/bin/activate

۳- از طریق دستور زیر وارد محیط shell جنگو بشوید.

python manage.py shell

۴ – مدل یوزر را import کنید که باهاش بتونیم یوزرهایی را که لازم داریم را پیدا کنیم.

from django.contrib.auth.models import User

۵ – حالا میتونیم با دستوری مثل دستور زیر کل کاربران را پیدا کنیم و داخل متغیر users بریزیم

users = User.objects.get.all()

۶- الان میتونیم کاربران رو با دستور زیر ببینیم ، کافیه متغیر users را print کنیم

print (users)

۷ – کاربری را که قصد تغییر پسورد آن را دارید را انتخاب کنید ، دقت کنید شمارش از عدد صفر شروع میشه یعنی اولین کاربری که در خروجی مرحله قبل میبینید میشه کاربر شماره صفر

user = users[0]

۸ – حالا با دستور زیر پسورد کاربری را که انتخابش کردید را تغییر دهید

user.set_password('New Password')

۹ – حالا تغییرات را ذخیره کنید و تمام !

user.save()


Admin Django Password Shell django filter form get python query required جنگو فرم پایتون

نظرات شما :