سلام دوستان حالتون خوبه؟ انشاءالله سلامت باشید.
خب قضیه از این قراره که ما لینک های کاربر رو در یه دیتا بیس میریزیم و اونا رو با یه چیزی اینکد(encode)میکنیم کوتاه باشه. من از Hashids استفاده کردم که بنظرم ساده میاد. شعارش هم اینه:
generate short unique ids from integers : تولید شناسه های منحصر بفرد از اعداد صحیح
خب میریم به قسمت شیرین ماجرا و شروع میکنیم :
اول یه فایل میسازیم مثلا به نام main.py و کتابخانه های موردنیاز رو وارد میکنیم و hashids رو پیکربندی میکنیم.
دو خط آخر اشاره به این داره که اول app.config['SECRET_KEY'] رو برابر کلید مخفی بکنیم. سپس به hashids میگیم که حداقل طول رو ۴ بکنه و نمک(یعنی یه چیزی رو به اون کلید اضافه کنه تا سخت بشه هکش کرد) هم همون کلیدمخفی هستش
کلید مخفی رو از کجا میاره؟ از یه فایلی به نام config.py:
و الان ساخت دیتا بیس:
حالا میریم که صفحه اصلی سایت رو بنویسیم.
اگه دقت کرده باشید آخر کد بالا دو تا return کردیم اینا صفحه های html رو رندر میکنن و به کاربر نشون میدن. یه فولدری به نام templates میسازیم و توش یه فایل html به نام base.html ایجاد میکنیم و توش مینویسیم:
این فایل بدنه کل فرانت اند هستش و بقیه فایل های html از این نشعت میگیرن.
توی همون فولدر یه فایل دیگه میسازیم به نام index.html :
خب الان صفحه اصلی سایت کار میکنه ولی وقتی که اون لینک کوتاه رو وارد میکنیم خطا 404 میده.
پس باید الان ریدارکت شدن رو هم بنویسیم تا وقتی اون لینک رو توی مرورگر وارد میکنیم ما رو به سمت url اصلی ببره. پس توی فایل main.py مینویسیم:
همینطور که دیدید، وقتی که URL رو وارد مرورگر کردیم فلاسک گزارش داد که http کد 302 بود که این یعنی ریدارکت با موفقیت انجام شد?
راستی من اینو توی فندق استقرار(deploy)دادم اگه خواستید ازش استفاده کنید و توی گیت هاب هم ستاره بدین :) لینک گیتهاب و لینک سایت