Статьи

Создайте приложение для колб за несколько минут

Согласно The Pallets Projects , Flask представляет собой облегченную  среду веб-приложений WSGI . Он предназначен для быстрого и легкого начала работы. Эта статья даже облегчит эту задачу, показывая пошаговое руководство по созданию веб-приложения Python Flask с автоматически сгенерированными желаемыми данными для запуска приложения.

Предпосылки:

Для начала давайте создадим простое приложение «Hello World». Сначала создайте новый проект. Из терминала или командной строки создайте новый каталог: 

mkdir myproject
cd myproject

Внутри каталога проекта создайте виртуальную среду для проекта. Вы можете проверить  virtualenv для получения дополнительной информации. Сначала установите virtualenv , создайте его, активируйте и установите Flask:

pip install virtualenv
#Create virtualenv
python3 -m venv venv
#Create virtualenv for windows
py -3 -m venv venv
#Activate virualenv:
. venv/bin/activate
#Activate virualenv for windows
venv\Scripts\activate
#Install Flask on the enviroment
pip install flask

Вам также может понравиться: Создание служб REST с помощью Flask .

Настройка проекта теперь готова начать добавлять функциональные возможности. Для начала давайте создадим новый файл в том же каталоге со следующим содержимым и назовем его  main.py.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World!"

Теперь мы можем запустить приложение, сообщив терминалу, какое приложение запускать, используя следующие команды: 

#Tell the terminal what application to run
export FLASK_APP=main.py
#Tell the terminal what application to run for windows
set FLASK_APP=main.py
#Run the application
flask run

Результат должен быть таким, как показано ниже, сообщая, что приложение работает на  http://127.0.0.1:5000/ . Переход на эту страницу должен вернуть «Hello World».

Привет, мировой выход

После завершения первой части статьи давайте перейдем к следующей части и добавим функциональность в наш проект. Для начала мы  загрузим SQLALCHEMY в наш проект, который представляет собой набор инструментов SQL с открытым исходным кодом и объектно-реляционный картограф для Python. Мы будем загружать некоторые другие пакеты для Flask, такие как wtforms и flask-wtforms, для создания наших форм.

#To install Flask-SQLAlchemy
pip install pip install flask-sqlalchemy
#To install WTForms
pip install WTForms
#To install Flask-wtforms
pip install Flask-WTF

Рекомендуется добавить установленные пакеты в файл формата требований. Для этого выполните следующую команду:

pip freeze requirements.txt

Эта команда сгенерирует файл с именем needs.txt . Он используется для хранения пакетов, вы можете использовать следующую команду для установки пакетов из файла требований. (этот шаг может быть пропущен, если вы запускаете код на том же компьютере, который использовался для предыдущих шагов.)

pip install -r requirements.txt

Подготовив проект к новым функциям, давайте добавим немного магии. Для начала позвольте мне быстро представить  функцию Clowiz CodeGen из  The Cloud Wizard .

На следующем рисунке представлена  функция CodeGen и все ее компоненты:

Компоненты проекта

Чтобы начать добавлять магию в проект:

  1. Перейдите на https://www.clowiz.com/code-generator/, чтобы начать использовать функцию CodeGen.

  2. Из раздела технологий нажмите на логотип Python Flask.

  3. В разделе метаданных заполните Имя формы (например, Сотрудник). (Это может быть что угодно.)

  4. В разделе Имя поля измените первое значение, например,  Имя .

  5. Второй можно переименовать в Email . (Измените тип данных на электронную почту .)

  6. Третий можно изменить на Зарплату, а Тип данных — на Двойной .

  7. Скопируйте код из секции сгенерированного кода в наш файл main.py ниже  hello() метода.

Теперь давайте определим модель базы данных, вернемся к Clowiz AppGen, выберите модель SQLAlchemy в разделе «Генераторы», скопируйте сгенерированный код и вставьте его в   main.py файл в форме, которую мы создали.

После сохранения файла main.py перейдите в терминал и выполните следующие команды для создания базы данных:

python3
from main import db
db.create_all()

Следующим шагом является создание маршрутов для приложения обратно в Clowiz AppGen. Затем выберите из представления генераторов, скопируйте сгенерированный код, вставьте его ниже модели базы данных в файл main.py и сохраните его.

Ваш файл main.py должен выглядеть следующим образом:

from flask import Flask, escape, request

app = Flask(__name__)

app.config['SECRET_KEY'] = 'any secret key'

@app.route('/')
def hello():
    return "Hello World!"


from flask_wtf import FlaskForm
from wtforms import SubmitField, HiddenField, StringField, IntegerField, DecimalField
from wtforms.validators import Email

class EmployeeForm(FlaskForm):
    id = HiddenField()
    name = StringField('Name')
    email = StringField('Email', validators=[Email()])
    salary = DecimalField('Salary')
    submit = SubmitField("Save")


from flask_sqlalchemy import SQLAlchemy
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/employee.db"
db = SQLAlchemy(app)

class Employee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    email = db.Column(db.String)
    salary = db.Column(db.Numeric)
    references = db.Column(db.String)

    def __repr__(self):
        return "(%r, %r, %r)" %(self.name,self.email,self.salary)


from flask import render_template, request, flash, redirect, url_for

@app.route("/employee", methods=["GET", "POST"])
def createEmployee():
    form = EmployeeForm(request.form)
    employees = Employee.query.all()
    if form.validate_on_submit():
        employee = Employee(name=form.name.data, email=form.email.data, salary=form.salary.data)
        db.session.add(employee)
        db.session.commit()
        db.session.refresh(employee)
        db.session.commit()
        flash("Added Employee Successfully")
        return redirect(url_for("createEmployee"))
    return render_template("employee.html", title="Employee", form=form, employees=employees)

@app.route("/updateEmployee/<int:employee_id>", methods=["GET", "POST"])
def updateEmployee(employee_id):
    employee = Employee.query.get(employee_id)
    form = EmployeeForm(request.form, obj=employee)
    if form.validate_on_submit():
        form.populate_obj(employee)
        db.session.commit()
        flash("Updated Employee Successfully")
        return redirect(url_for("createEmployee"))
    return render_template("employee.html", title="Employee", form=form, employees=Employee.query.all())

@app.route("/deleteEmployee/<int:employee_id>", methods=["GET", "POST"])
def deleteEmployee(employee_id):
    employee = Employee.query.get(employee_id)
    db.session.delete(employee)
    db.session.commit()
    return redirect(url_for("createEmployee"))

Поскольку у нас есть созданное представление, мы должны представить форму пользователю. Давайте посмотрим, как  создать пользовательский интерфейс.

Создайте новый каталог в каталоге проекта под названием шаблоны, используя следующие команды (эта папка должна называться шаблонами):

  1. В этой папке создайте два файла, один из которых называется  layout.html(обратите внимание, он должен называться layout.html, поскольку он будет импортирован в файл employee.html ), а другой —  employee.html .

mkdir templates
touch templates/layout.html
touch templates/employee.html

3. Вернитесь в Clowiz AppGen, выберите Layout в разделе Generators , скопируйте сгенерированный код и вставьте его в файл layout.html .

4. Измените раздел « Генераторы » на « Шаблон» и скопируйте сгенерированный код в файл employee.html  .

5. Сохраните файлы и запустите  flask run в терминале. T курица, перейти.

Вы должны увидеть следующее и иметь возможность добавить новую запись.

Добавление нового сотрудника

Теперь заполните форму и сохраните значения, вы получите следующее:

Сотрудник успешно добавлен

Вы даже можете обновить запись, нажав на кнопку обновления, изменив значение, которое вы хотите обновить, и сохранив его.

Новый сотрудник отображается

Чтобы удалить запись, нажмите на кнопку удаления.

Вы можете получить все вышеперечисленные шаги с улучшенной структурой проекта и готовой сборкой докера, готовой для вас, нажав кнопку «  Скачать как полный проект» в нижней части страницы CodeGen.

Резюме

В этом уроке мы создали простое приложение «Hello, world» с использованием Python Flask. Затем мы использовали Clowiz AppGenerator для генерации необходимого кода для полного проекта. 

Дальнейшее чтение