博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLAlchemy使用
阅读量:2384 次
发布时间:2019-05-10

本文共 6215 字,大约阅读时间需要 20 分钟。

1. 创建session和描述表

one.py内容如下:

from flask import Flask                                                                                                                                                                                     from flask_sqlalchemy import SQLAlchemy                                                                                                                         app = Flask(__name__)                                                           app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:fw123456@localhost/testdb1'//1. 数据库的用户和密码,数据库库testdb1db = SQLAlchemy(app)                                                                                                                                                                                                                            class User(db.Model):                                                               id = db.Column(db.Integer, primary_key=True)                                    username = db.Column(db.String(80), unique=True)                                email = db.Column(db.String(120), unique=True)                                       //2. 描述表的成员                                                                           def __init__(self, username, email):                                                self.username = username                                                        self.email = email                                                                                                                                          def __repr__(self):                                                                 return '
' % self.username

使用步骤:

  1. 创建数据库会话,通过用户名和密码,数据库名。
  2. 通过class描述表User,然后描述表User,成员。

2. 创建表

在python交互语言中创建表。

>>> from one import db;/home/tom/work/virtualenvs/upgrade-platform-p2-7-5/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:839: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '>>> db.create_all()/home/tom/work/virtualenvs/upgrade-platform-p2-7-5/lib/python2.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: 
. """)

使用 步骤:

  1. db.create_all()创建表User

在postgresql命令行中,可以看见创建的User表

testdb2=# \d user                                     Table "public.user"  Column  |          Type          | Collation | Nullable |             Default              ----------+------------------------+-----------+----------+---------------------------------- id       | integer                |           | not null | nextval('user_id_seq'::regclass) username | character varying(80)  |           |          |  email    | character varying(120) |           |          | Indexes:    "user_pkey" PRIMARY KEY, btree (id)    "user_email_key" UNIQUE CONSTRAINT, btree (email)    "user_username_key" UNIQUE CONSTRAINT, btree (username)

3. 向表插值

>>> admin = User('admin', 'admin@example.com')>>> guest = User('guest', 'guest@example.com')>>> db.session.add(admin)   //session添加数据>>> db.session.add(guest)>>> db.session.commit()     //commit提交数据

在postgresql中通过SELECT查询User,查询不到,数据应该以其他格式存在user_id_seq.

testdb2=# select * FROM user;   user   ---------- postgres(1 row)

4. 查询table数据

>>> users = User.query.all()>>> admin = User.query.filter_by(username='admin').first()>>> print admin
>>> print users[
,
]

User.query.all()函数是查询表中说有数据,print users输出[<User u’admin’>, <User u’guest’>]中的User是指的是User表结构。

其他

Python文件(.py)就是一个模块,可以直接用import导入

比如,one.py,就可以import one

from 模块名 import xxx ,xxx可以是类,函数,常量等等

比如想用one.py中的db变量

比如one.py内容如下:

from flask import Flask                                                                                                                                                                                     from flask_sqlalchemy import SQLAlchemy                                                                                                                         app = Flask(__name__)                                                           app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:fw123456@localhost/testdb1'db = SQLAlchemy(app)                                                                                                                                                                                                                            class User(db.Model):                                                               id = db.Column(db.Integer, primary_key=True)                                    username = db.Column(db.String(80), unique=True)                                email = db.Column(db.String(120), unique=True)                                                                                                                  def __init__(self, username, email):                                                self.username = username                                                        self.email = email                                                                                                                                          def __repr__(self):                                                                 return '
' % self.username

想使用db变量则

>>> from one import db/home/tom/work/virtualenvs/upgrade-platform-p2-7-5/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:839: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '>>> db.create_all()/home/tom/work/virtualenvs/upgrade-platform-p2-7-5/lib/python2.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: 
. """)

参考

转载地址:http://bafab.baihongyu.com/

你可能感兴趣的文章
Linux系统文本模式下的截屏技巧
查看>>
php中$_Get $_POST $_REQUEST区别
查看>>
PHP - 解决中文乱码问题
查看>>
php empty() isset() is_null()
查看>>
PHP学习-面向对象
查看>>
js页面跳转整理
查看>>
在64位Win7操作系统中安装Microsoft Access Engine的解决方案
查看>>
30类CSS选择器
查看>>
微信支付的使用介绍
查看>>
PHP单例模式应用详解
查看>>
冒号课堂§5.2:数据类型
查看>>
博客搬家
查看>>
冒号课堂§6.2:平台语言
查看>>
《关于信息系统组织方式的一个提案》的评论与反评
查看>>
冒号和他的学生们(连载10)——超级范式
查看>>
冒号和他的学生们(连载9)——泛型范式
查看>>
冒号和他的学生们(连载13)——范式总结
查看>>
A Proposal on Organization of Information System
查看>>
冒号和他的学生们(连载2)——首轮提问
查看>>
正则表达式与文件格式化处理
查看>>