استقرار برای کار(Deploy to Production)¶
این قسمت از آموزش فرض می کند که شما سروری دارید که می خواهید برنامه خود را در آن مستقر کنید. این یک نمای کلی از نحوه ایجاد فایل توزیع و نصب آن را ارائه می دهد، اما به جزئیات در مورد سرور یا نرم افزار مورد استفاده نمی پردازد. میتوانید یک محیط جدید در رایانه توسعهدهنده خود راهاندازی کنید تا دستورالعملهای زیر را امتحان کنید، اما احتمالاً نباید از آن برای میزبانی یک برنامه عمومی واقعی استفاده کنید. برای فهرستی از روشهای مختلف میزبانی برنامه، به Deploying to Production مراجعه کنید.
ساخت و نصب¶
When you want to deploy your application elsewhere, you build a wheel
(.whl
) file. Install and use the build
tool to do this.
$ pip install build
$ python -m build --wheel
می توانید فایل را در dist/flaskr-1.0.0-py3-none-any.whl
پیدا کنید. نام فایل در قالب {project name}-{version}-{python tag} -{abi tag}-{platform tag} می باشد.
این فایل را در دستگاه دیگری کپی کنید، یک virualenv را راهاندازی کنید ، سپس فایل را با pip
نصب کنید.
$ pip install flaskr-1.0.0-py3-none-any.whl
Pip پروژه شما را به همراه وابستگی های آن نصب می کند.
از آنجایی که این یک ماشین متفاوت است، برای ایجاد پایگاه داده در پوشه نمونه، باید init-db
را دوباره اجرا کنید.
$ flask --app flaskr init-db
When Flask detects that it's installed (not in editable mode), it uses
a different directory for the instance folder. You can find it at
.venv/var/flaskr-instance
instead.
پیکربندی کلید مخفی(Secret Key)¶
در ابتدای آموزش که یک مقدار پیش فرض برای SECRET_KEY
دادید. این باید به چند بایت تصادفی در تولید تغییر کند. در غیر این صورت، مهاجمان میتوانند از کلید عمومی 'dev'
برای اصلاح کوکی جلسه یا هر چیز دیگری که از کلید مخفی استفاده میکند استفاده کنند.
برای دریافت یک کلید مخفی تصادفی می توانید از دستور زیر استفاده کنید:
$ python -c 'import secrets; print(secrets.token_hex())'
'192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf'
فایل config.py
را در پوشه نمونه ایجاد کنید که در صورت وجود، کارخانه از آن می خواند. مقدار تولید شده را در آن کپی کنید.
SECRET_KEY = '192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf'
همچنین میتوانید هر پیکربندی ضروری دیگری را در اینجا تنظیم کنید، اگرچه SECRET_KEY
تنها مورد نیاز برای Flaskr است.
اجرای یک سرور کار(Production)¶
هنگام اجرای عمومی به جای توسعه، نباید از سرور توسعه داخلی استفاده کنید ( flask run
). سرور توسعه توسط Werkzeug برای راحتی ارائه شده است، اما به گونه ای طراحی نشده است که کارآمد، پایدار یا ایمن باشد.
در عوض، از سرور WSGI تولیدی استفاده کنید. به عنوان مثال، برای استفاده از Waitress, ، ابتدا آن را در محیط مجازی نصب کنید:
$ pip install waitress
You need to tell Waitress about your application, but it doesn't use
--app
like flask run
does. You need to tell it to import and
call the application factory to get an application object.
$ waitress-serve --call 'flaskr:create_app'
Serving on http://0.0.0.0:8080
برای فهرستی از روشهای مختلف میزبانی برنامه، به Deploying to Production مراجعه کنید. Waitress فقط یک مثال است که برای آموزش انتخاب شده است زیرا از ویندوز و لینوکس پشتیبانی می کند. سرورهای WSGI و گزینه های استقرار بیشتری وجود دارد که می توانید برای پروژه خود انتخاب کنید.
با به توسعه ادامه دهید! ادامه دهید.