python flask tutorial introduction flask
Този уводен урок за Python Flask обяснява какво е Flask, инсталиране на Python, Virtualenv, Flask Hello World пример с раздел за примери на кодове, отстраняване на грешки и тестване:
Разработката на уебсайт е по-скоро изкуство, отколкото умение. Изисква търпение и старание, заедно с постоянство, смелост и отдаденост, за да се създаде необходимото, за да бъде истински успех. В днешно време е важно учениците да стигнат до скорост възможно най-скоро.
Създадохме този урок за Python Flask, за да могат учениците да ускорят и внедрят просто, както и сложно уеб програмиране, използвайки Python 3.
Този урок за Python Flask е по-скоро като урок за начинаещи, който ще обхване инсталирането на Python, Virtualenv и други основни пакети. В тази поредица от уроци ще инсталираме и Flask заедно с другите необходими приставки за Flask. Включихме и раздел за отстраняване на грешки в кода, тестване и непрекъсната интеграция с помощта на Git Action.
Какво ще научите:
Списък с уроци в тази серия от колби
Урок # 1: Урок за Python Flask - Въведение в Flask за начинаещи
Урок # 2: Шаблон на колба, формуляр, изглед и пренасочване с примери
Урок № 3: Работа с база данни с колби - Как да използвам колба с база данни
Урок № 4: Flask App и Flask Project Layout с Blueprint & Bootstrap
Урок № 5: Модели за дизайн на колби и най-добри практики за уеб приложения
Урок # 6: Урок за API на Flask с пример | Разширяване на колбата с API
Урок № 7: Django Vs Flask Vs Node: Коя рамка да изберете
Урок № 8: Топ 31 популярни въпроса за интервю с Python Flask с отговори
Какво е Колба
Flask е рамка за уеб разработка. Това е рамка с вграден сървър за разработка и дебъгер.
въпроси за интервю за автоматизиране на тестове за опитни
Рамката Flask сама по себе си се различава от останалите архетипове, тъй като позволява на уеб разработчиците да бъдат гъвкави и да приспособяват удобно често пусканите промени в общността за разработка на софтуер.
За какво се използва колбата
Използваме рамката Flask за разработване на уеб приложения на езика за програмиране Python. Той се интегрира с други услуги и API на трети страни, за да внесе богатство и смисъл в приложението в процес на разработка. Основните концепции на Flask са прости и има малък отпечатък.
Нека започнем с този урок за Python Flask, за да разберем уеб разработката с помощта на хранилище на Flask GitHub. Преди да продължите обаче, моля, клонирайте проекта от Github за лесно проследяване на обсъдените примери за кодове.
Предпоставки
Освен споменатите заглавия в този раздел, препоръчваме да създадете акаунт в Github. Нека продължим с посочените по-долу стъпки в предпоставките.
Стъпка 1: Инсталирайте Python
Проверете дали сте инсталирали Python 3 или не. Ако не, изтеглете Python 3 от тук и го инсталирайте според вашата операционна система.
Стъпка 2: Създайте виртуална среда на Python
Създайте виртуална среда, като използвате командата по-долу.
python3 -m venv venv
Използвайте командата по-долу, за да активирате виртуалната среда на Python.
source venv/bin/activate
По-долу сме дали пример за активиране и деактивиране на виртуалната среда.
Всички следващи команди в този урок трябва да се изпълняват в активирана виртуална среда. Инсталирайте пакета колела, за да можем да изградим колела във виртуалната среда.
pip install wheel
Стъпка 3: Изтегляне на колбата и вграждане
Трябва да изпълним стъпките за изтегляне на Flask и да инсталираме Flask, като използваме посочените по-долу стъпки.
Сега инсталирайте Flask.
pip install flask
Някои от нас обичат да работят заедно с последните промени в изходния код. Можем да използваме дадената по-долу команда за инсталиране с най-новите промени в източниците на Flask.
Направете временна директория.
mkdir tmp
Сега инсталирайте Flask от хранилището на Github. Трябва да останете свързани с интернет, за да работи командата по-долу.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Погледнете изходите на конзолата, за да проверите успешната инсталация. Сега проверете дали имаме достъп до командите на Flask.
flask --help
Може да видите някои изключения относно липсата на приложение на Flask. Пренебрегвайте обаче тези, тъй като не сме създали нито едно приложение Flask. Нашето приложение е екземпляр на Flask, който е обвивка на уеб рамката на Werkzeug и механизма за шаблониране на Jinja.
Инструмент
Werkzeug е набор от инструменти на WSGI. WSGI е само конвенция за извикване на уеб сървъри за пренасочване уеб заявки към уеб приложения, написани на езика за програмиране Python.
Джинджа
Шаблонирането е основен набор от умения на уеб разработчиците. Jinja е пълнофункционален и популярен механизъм за шаблониране на Python. Това е доста изразителен език и предоставя солиден набор от инструменти за авторите на шаблони.
Стъпка 4: Инсталирайте MongoDB
Следвайте стъпките по-долу, за да инсталирате MongoDB. Очертахме стъпките за инсталирането му в Linux, базиран на Debian. Ако използвате друга операционна система, отворете връзка и инсталирайте според предвидената операционна система.
Инсталирайте gnupg за импортиране на публичен GPG ключ на MongoDB.
sudo apt-get install gnupg
Сега импортирайте ключа, като използвате командата по-долу.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Създайте файла със списъка с източници според вашата дистрибуция на Linux. Добавихме списъка с източници според Debian.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Изпълнете командата за актуализиране
sudo apt-get update
Сега инсталирайте MongoDB, като използвате командата по-долу.
sudo apt-get install -y mongodb-org
След като инсталацията е успешна, стартирайте MongoDB, като използвате командата по-долу.
sudo systemctl start mongod
Проверете състоянието на MongoDB, като използвате командата по-долу.
sudo systemctl status mongod
Сега се уверете, че mongod автоматично стартира при рестартиране на системата, като издавате показаната по-долу команда.
sudo systemctl enable mongod
Сега проверете дали можете да се свържете с MongoDB сървъра с помощта на mongo клиент.
mongo
В обвивката на mongo опитайте да използвате помощта и да покажете dbs команди.
Създайте приложение за колба
Използвайте командата по-долу, за да инсталирате flask-appbuilder и mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Създайте скелетно приложение със стойностите, показани като коментари в кодовия фрагмент по-долу.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Ще видим резултата, подобен на този, даден по-долу.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Погледнете оформлението на проекта и приложението. Показахме изхода на командата дърво по-долу.
Нека да разгледаме конфигурационния файл на Flask. Това е конфигурация по подразбиране, генерирана в резултат на последната команда. Разкоментирайте Киборг тема, както е показано по-долу.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
За да стартирате скелетното приложение, използвайте командата по-долу на терминала.
flask run
Колба Hello World
За да създадете първата си програма в flaskTutorialApp, отворете файла views.py под директорията на приложението и добавете следния код. Потърсете изявления за импортиране, дадени във файла. Добавете тези твърдения, ако вече не присъстват.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Запазете файла след добавяне на горния изходен код. Отидете в основната директория на проекта и използвайте командата по-долу, за да стартирате сървъра за разработка на Flask.
flask run
Сега отидете на http: // localhost: 5000 / hello /, за да видите изхода в браузъра.
Отстраняване на грешки
Понастоящем сървърът за разработка не работи в режим за отстраняване на грешки. Без режим за отстраняване на грешки е трудно да се намерят грешките в изходния код на приложението Flask.
Режимът за отстраняване на грешки в Flask води до следното:
- Режимът за отстраняване на грешки активира автоматичното презареждане. Това означава, че не е необходимо да рестартираме сървъра за разработка, след като направим промени в изходния код на приложението.
- Режимът за отстраняване на грешки активира Python дебъгер. Можем да проверяваме стойностите на променливите по време на изключението.
- Режимът за отстраняване на грешки позволява отстраняване на грешки в приложението Flask. Можем да проверяваме стойностите на различни променливи в сесиите за отстраняване на грешки.
Спрете сървъра за разработка, ако той вече работи. Можете да използвате CTRL + C или прекъсване на клавиатурата, за да направите същото.
Използвайте следния код, за да разрешите режима за отстраняване на грешки и да стартирате временно сървъра за разработка.
FLASK_ENV=development flask run
Потърсете в конзолата ПИН код за отстраняване на грешки и го запишете.
Сега нека променим изписания по-горе изглед HelloWorld със следните редове на кодовия фрагмент. Забележете, че въведохме персонализирано изключение.
Въпроси и отговори за интервю за селен за опитни
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Придвижете се до http: // localhost: 5000 / hello / и ще видите, че приложението е създало изключение. Браузърът показва трасирането на стека, както е показано по-долу.

Освен това погледнете конзолата, където работи сървърът за разработка. Ще откриете, че този път промените в views.py се откриват автоматично и сървърът за отстраняване на грешки се рестартира сам. Сега не е необходимо да го рестартираме ръчно.
Конзолата ще има линии, както е показано по-долу. Трябва да запишем ПИН кода за отстраняване на грешки за по-късно.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Сега проверете проследяването на стека в браузъра и отидете на последния ред. Кликнете върху него, за да разширите изгледа му, и щракнете върху иконата CLI, за да отворите черупката в интерактивен режим.

След като го отворите, ще видите, че браузърът ще покаже подкана за ПИН за отстраняване на грешки. Дайте ПИН кода за отстраняване на грешки и щракнете върху OK.

След като продължим напред, след като дадем ПИН за отстраняване на грешки, можем да осъществим достъп до интерактивната обвивка.
Достъпваме черупката от браузъра и можем да проверим стойностите на променливите, за да намерим причината за изключението и да се справим с грешката по-добре. Моля, разгледайте един от примерите, показани на изображението по-долу.

Сега променете кода в view.py, както е показано по-долу. Имайте предвид, че сме коментирали реда, който е имал повдигнатото изключение.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Тестване на приложението на колбата
Сега нека напишем първия си тест за приложението Flask, което разработваме. Първо инсталирайте PyTest. PyTest е рамка за тестване. Помага ни да напишем по-добър код.
Освен това, само защото можем да пишем модулни тестове, докато разработваме нашите приложения, е възможно да следваме TDD подхода. TDD означава Test-Driven Development. В следващите уроци от тази поредица винаги ще пишем първо тестове и ще развиваме нашите възгледи или модели.
Инсталирайте PyTest
pip install pytest
Сега създайте директория, наречена тестове, в директорията на приложението и в нея създайте файл, наречен test_hello.py. Нека напишем първия ни единичен тест, за да тестваме нашия изглед.
Копирайте следния кодов фрагмент и го поставете в test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
Използвайте командата pytest по-долу, за да стартирате тестовете. PyTest автоматично събира тестовете и показва резултатите на стандартния изход.

Създайте работен поток на GitHub
Използваме Git Actions, за да създадем CI / CD работен процес за нашето примерно приложение. Следвайте стъпките по-долу за вашия проект.
Стъпка 1: Придвижете се до страницата на хранилището в GitHub. Кликнете върху Git Action.

Стъпка 2: Превъртете надолу по страницата и намерете съществуващ шаблон за работен поток за пакет Python.

Стъпка 3: Инсталирайте работния поток на пакета Python.

Стъпка 4: След като се отвори конфигурацията на работния поток python-package.yml, актуализирайте я въз основа на дадените допълнителни стойности на таг за yaml.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Искаме да тестваме нашето приложение Flask на най-новата дистрибуция на Ubuntu Linux. В допълнение към операционната система, ние искаме да провеждаме нашите тестове само с помощта на Python 3.7 и Python 3.8.
Стъпка 5: Ангажирайте python-package.yml с актуализираните стойности.

Стъпка 6: Ангажирането на предишната страница ни отвежда до заданията на GitActions.

Стъпка 7: (По избор)
На страницата Github Jobs за примерното приложение за урок можем да създадем значка и да я поставим във файла README.md за показване на състоянието на компилация.
Сега, когато промените са ангажирани с главния клон, Git Workflow, както е написано в python-package.yml, ще бъде последван и ще се изпълнява в Git Action.
Заключение
В този урок сме обхванали всички основни концепции от предпоставки до настройка на CI / CD работен процес за уеб приложение, разработено с помощта на Flask - базирана на Python рамка за уеб разработка.
Този урок обхваща всички необходими стъпки като инсталиране на Python, изтегляне и инсталиране на Flask, работа с Flask-Appbuilder, тестване с PyTest и др., За да започнете с уеб разработка с помощта на Python. Общността за уеб разработка обикновено сравнява Flask с друга популярна рамка за уеб разработка на Python, наречена Django.
Ще обясним тези разлики и ще сравним тези рамки в един от уроците от тази поредица.
Препоръчително четене
- Django Vs Flask Vs Node: Коя рамка да изберете
- Урок за API на Flask с пример | Разширяване на колбата с API
- Flask App и Flask Project Layout с Blueprint & Bootstrap
- Работа с база данни с колби - Как да използвам колба с база данни
- Модели за дизайн на колби и най-добри практики за уеб приложения
- Шаблон на колба, формуляр, изглед и пренасочване с примери
- Топ 31 популярни въпроса за интервю с Python Flask с отговори
- Урок за Python за начинаещи (практически БЕЗПЛАТНО обучение за Python)