کمیل پارسه
کمیل پارسه
خواندن ۲ دقیقه·۴ سال پیش

ساخت کوتاه کننده لینک با پایتون

سلام دوستان حالتون خوبه؟ انشا‌ءالله سلامت باشید.

اگر با تم دارک هستید شرمنده کامل دیده نمیشه چون قسمتی سیاه هستش:(
اگر با تم دارک هستید شرمنده کامل دیده نمیشه چون قسمتی سیاه هستش:(


چطوری میشه با پایتون(و فلاسک) یه وب‌سرویس برای کوتاه کردن لینک ها ساخت؟

خب قضیه از این قراره که ما لینک های کاربر رو در یه دیتا بیس میریزیم و اونا رو با یه چیزی اینکد(encode)میکنیم کوتاه باشه. من از Hashids استفاده کردم که بنظرم ساده میاد. شعارش هم اینه:

generate short unique ids from integers : تولید شناسه های منحصر بفرد از اعداد صحیح


خب میریم به قسمت شیرین ماجرا و شروع میکنیم :

اول یه فایل میسازیم مثلا به نام main.py و کتاب‌خانه های مورد‌نیاز رو وارد میکنیم و hashids رو پیکربندی میکنیم.

https://gist.github.com/KomeilParseh/fe64a7491254427afce10c05399b860f


دو خط آخر اشاره به این داره که اول app.config['SECRET_KEY'] رو برابر کلید مخفی بکنیم. سپس به hashids میگیم که حداقل طول رو ۴ بکنه و نمک(یعنی یه چیزی رو به اون کلید اضافه کنه تا سخت بشه هکش کرد) هم همون کلید‌مخفی هستش

کلید مخفی رو از کجا میاره؟ از یه فایلی به نام config.py:

https://gist.github.com/KomeilParseh/6dd23fd2412bd60fa1ead25eda72db21


و الان ساخت دیتا بیس:

https://gist.github.com/KomeilParseh/2d3f6123953f6b26bf9bea598b1398c2


حالا میریم که صفحه اصلی سایت رو بنویسیم.

https://gist.github.com/KomeilParseh/9b4e4ee9d0375413f57c4893cc627ff7


اگه دقت کرده باشید آخر کد بالا دو تا return کردیم اینا صفحه های html رو رندر میکنن و به کاربر نشون میدن. یه فولدری به نام templates میسازیم و توش یه فایل html به نام base.html ایجاد میکنیم و توش مینویسیم:

https://gist.github.com/KomeilParseh/dfd87075b508fc1856e4dd3e598c03cf


این فایل بدنه کل فرانت اند هستش و بقیه فایل های html از این نشعت میگیرن.


توی همون فولدر یه فایل دیگه میسازیم به نام index.html :

https://gist.github.com/KomeilParseh/5670f158c14581a2aed0a3bcb04b95d3


خب الان صفحه اصلی سایت کار میکنه ولی وقتی که اون لینک کوتاه رو وارد میکنیم خطا 404 میده.

پس باید الان ریدارکت شدن رو هم بنویسیم تا وقتی اون لینک رو توی مرورگر وارد میکنیم ما رو به سمت url اصلی ببره. پس توی فایل main.py مینویسیم:

https://gist.github.com/KomeilParseh/93d3916612acee17cf0ab408734c2b45


همینطور که دیدید، وقتی که URL رو وارد مرورگر کردیم فلاسک گزارش داد که http کد 302 بود که این یعنی ریدارکت با موفقیت انجام شد?

راستی من اینو توی فندق استقرار(deploy)دادم اگه خواستید ازش استفاده کنید و توی گیت هاب هم ستاره بدین :) لینک گیت‌هاب و لینک سایت


پایتونpythonبرنامه‌نویسیبرنامه نویسیflask
https://github.com/mmdbalkhi
شاید از این پست‌ها خوشتان بیاید