Python Flask SQLAlchemy ORM数据开发实例

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 SQLAlchemy ORM数据开发实例

文章图片
单击链接” 添加新员工” 以将新员工添加到数据库。
Python Flask SQLAlchemy ORM数据开发实例

文章图片
单击提交, 我们将在主页列表中看到新添加的员工。
Python Flask SQLAlchemy ORM数据开发实例

文章图片

    推荐阅读