Flask SQLAlchemy是一个ORM工具, 用于建立对象和关系数据库表之间的关系。
两者之间的映射很重要, 因为python能够以对象的形式存储数据, 而数据库则以关系表(即行和列的集合)的形式存储数据。
对象关系映射是一种将python对象存储到数据库表中而无需编写原始SQL查询的技术。
在本教程的这一部分中, 我们将使用flask-sqlalchemy ORM技术创建一个小型Web应用程序。
安装flask-sqlalchemy
要使用flask ORM技术创建Web应用程序, 我们必须使用pip安装程序安装flask-sqlalchemy。
$ pip install flask-sqlalchemy
要确认安装, 请尝试在python shell上导入模块。如果导入成功, 则安装成功。
$ import flask_sqlalchemy
使用flask-sqlalchemy创建小型Web应用程序
在本教程的这一部分中, 我们将使用ORM SQLAlchemy在python中创建一个CRUD应用程序。
例子
add.html
<
!DOCTYPE html>
<
html>
<
body>
<
h3>
Add new Employee<
/h3>
<
hr/>
{%- for category, message in get_flashed_messages(with_categories = true) %}
<
div class = "alert alert-danger">
{{ message }}
<
/div>
{%- endfor %}<
form action = "{{ request.path }}" method = "post">
<
label for = "name">
Name<
/label>
<
br>
<
input type = "text" name = "name" placeholder = "Name" />
<
br>
<
label for = "salary">
Salary<
/label>
<
br>
<
input type = "text" name = "salary" placeholder = "salary" />
<
br>
<
label for = "age">
Age<
/label>
<
br>
<
textarea name = "age" placeholder = "age">
<
/textarea>
<
br>
<
label for = "PIN">
Pin<
/label>
<
br>
<
input type = "text" name = "pin" placeholder = "pin" />
<
br>
<
input type = "submit" value = "http://www.srcmini.com/Submit" />
<
/form>
<
/body>
<
/html>
list_employees.html
<
!DOCTYPE html>
<
html lang = "en">
<
head>
<
title>
Home<
/title>
<
/head>
<
body>
<
h3>
<
a href = "http://www.srcmini.com/{{ url_for('list_employees') }}">
Employee Management System<
/a>
<
/h3>
<
hr/>
{%- for message in get_flashed_messages() %}
{{ message }}
{%- endfor %}<
h3>
Employees List<
/h3>
<
table border="2" padding = "5">
<
thead>
<
tr>
<
th>
Name<
/th>
<
th>
Salary<
/th>
<
th>
Age<
/th>
<
th>
Pin<
/th>
<
/tr>
<
/thead>
<
tbody>
{% for employee in Employees %}
<
tr>
<
td>
{{ employee.name }}<
/td>
<
td>
{{ employee.salary }}<
/td>
<
td>
{{ employee.age }}<
/td>
<
td>
{{ employee.pin }}<
/td>
<
/tr>
{% endfor %}
<
/tbody>
<
/table>
<
br>
<
br>
<
a href="http://www.srcmini.com/{{ url_for('addEmployee') }}">
Add New Employee<
/a>
<
/body>
<
/html>
【Python Flask SQLAlchemy ORM数据开发实例】app.py
from flask import Flask, request, flash, url_for, redirect, render_template
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///employees.sqlite3'
app.config['SECRET_KEY'] = "secret key"db = SQLAlchemy(app)class Employees(db.Model):
id = db.Column('employee_id', db.Integer, primary_key = True)
name = db.Column(db.String(100))
salary = db.Column(db.Float(50))
age = db.Column(db.String(200))
pin = db.Column(db.String(10))def __init__(self, name, salary, age, pin):
self.name = name
self.salary = salary
self.age = age
self.pin = pin@app.route('/')
def list_employees():
return render_template('list_employees.html', Employees = Employees.query.all() )@app.route('/add', methods = ['GET', 'POST'])
def addEmployee():
if request.method == 'POST':
if not request.form['name'] or not request.form['salary'] or not request.form['age']:
flash('Please enter all the fields', 'error')
else:
employee = Employees(request.form['name'], request.form['salary'], request.form['age'], request.form['pin'])db.session.add(employee)
db.session.commit()
flash('Record was successfully added')
return redirect(url_for('list_employees'))
return render_template('add.html')if __name__ == '__main__':
db.create_all()
app.run(debug = True)
输出
文章图片
单击链接” 添加新员工” 以将新员工添加到数据库。
文章图片
单击提交, 我们将在主页列表中看到新添加的员工。
文章图片
推荐阅读
- Python Flask教程介绍
- Python Flask如何使用和处理会话session()
- Python Flask重定向和错误处理
- Python Flask邮件扩展进阶开发
- Python Flask如何使用Request对象()
- Android 最流行的吸顶效果的实现及代码
- Android Intent基本使用
- Asp.Net Core 发布异常 502.5 [The Application process failed to Start]
- Unity设置AppIcon方法