Flask-16 Using Flask-SQLAlchemy

安装Flask-SQLAlchemy

pip install flask-sqlalchemy

载入SQLAlchemy

在hello.py中添加

from flask.ext.sqlalchemy import SQLAlchemy

初始化设置

hello.py中添加

设置数据库链接地址

1 app.config[‘SQLALCHEMY_DATABASE_URI‘] = ‘mysql+mysqldb://<数据库用户名>:<密码>@<数据库地址>/<数据库名称>?charset=utf8‘

创建User类

1 class User(db.Model):
2     __tablename__ = ‘username‘
3     id = db.Column(db.Integer,primary_key=True)
4     name = db.Column(db.String(64),unique = True,index= True)
5
6     def __repr__(self):
7         return ‘<User {0}>‘.format(self.name)
  1. __tablename__ :表名
  2. id&name:数据表中两个字段分别为整型和字符型
  3. def __repr__(self) :对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串

在视图user函数下添加数据库操作语句

 1 @app.route(‘/user‘,methods=[‘GET‘,‘POST‘])
 2 def user():
 3     name = None
 4     new = False
 5     form = NameForm()
 6     if form.validate_on_submit():
 7         name = form.name.data
 8         form.name.data = ‘‘
 9         if User.query.filter_by(name=name).first() is None:
10             db.session.add(User(name = name))
11             db.session.commit()
12             new = True
13     return render_template(‘user.html‘,form = form,name = name,new = new)
  1. new:是否新用户标志位,默认为flase,当数据库中未查找到输入的用户名时标志变为true,最后将值传给user.html
  2. User.query.filter_by(name=name).first():查询数据表,name =输入的用户名,并返回查找到的第一条记录
  3. db.session.add(User(name = name)):在数据表中插入一条user记录

在user.html中添加是否为新用户判断条件

 1 {% block page_content %}
 2     <div class="container">
 3         <div class="row">
 4             <div class="col-md-3">
 5                 {{ wtf.quick_form(form) }}
 6                 {% if name %}
 7                     {% if new  %}
 8                         <h1> Welcome, {{ name }}</h1>
 9                     {% else %}
10                         <h1>See you again, {{ name }}</h1>
11                     {% endif %}
12                 {% endif %}
13             </div>
14         </div>
15     </div>
16 {% endblock %}

{% if new %}{% else %}{% endif %}:判断new值,为True时显示Welcom <user>,为False时See you again,<user>

数据库操作语句

  1. User.query.all():查找数据表中所有记录
  2. User.query.filter(User.name.startswith(‘M‘)).all():查找数据表中所有以M开头的用户名
  3. u=User(name=‘John‘):利用User类生成一条字符"<User John>"
  4. db.session.add(u):在数据表中添加John用户,“<User John>"
  5. db.commit():提交数据表的修改操作
  6. db.session.delete(u):数据表中删除John用户
时间: 2024-11-08 22:39:58

Flask-16 Using Flask-SQLAlchemy的相关文章

Flask Web Development - Flask 模板1 - 模板机制&Jinja2引擎

节选自PartI Chapter3,这个chapter主要讲模板工作原理,这里讲的就是Jinja2这个模板,另外还提到了Flask-Bootstrap及Flask-Moment两个插件,前者对Flask使用Bootstrap做了些封装,后者对moment.js做了些封装.内容较多,估计分开搞. 模板存在的意义 可维护性高的代码是结构良好且整洁的. 当用户在网站注册一个账户时,他在表单里填入邮箱跟密码,并点击提交按钮.在server端就收到一个包含这些数据的request,再由Flask分发到相应

Flask Web Development - Flask插件机制&Flask-Script

本节取自part I chapter 2的后半部分,跳过了关于request与response具体交互设计细节内容.主要通过Flask-Script插件让读者对于插件系统有个简单认识. Flask注重拓展性,社区里已经有很多插件可供选择,当然也可以使用python标准库或者其他的各种库. Flask-Script Flask-Script这个插件,是用来增加Flask应用的命令行参数的,它本身自带了一些通用的选项,也支持自定义的命令.这功能可能类似于python标准库中的argparse. 之前

Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)

蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做

Flask基础(12)--&gt;Flask扩展Flask-Script

Flask基础(12)-->Flask扩展Flask-Script # 前提是安装了Flask-Script # 联网运行 pip install flask-script from flask import Flask from flask_script import Manager # 导入Manger app = Flask(__name__) # 创建Flask对象 class Config(object): DEBUG = True app.config.from_object(Con

python常用框架之一 Flask (1) 初识Flask

---恢复内容开始--- Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现. 比如可以用 Flask 扩展加入ORM.窗体验证工具,文件上传.身份验证等.Flask 没有默认使用的数据库,你可以

【Flask】认识Flask

Python 现阶段三大主流Web框架 Django Tornado Flask 对比 百度百科 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 Django 通常用于

Flask中的的SQLAlchemy

好久没有更新Blog了 今天来聊一聊 Python 的 ORM 框架 SQLAlchemy 有的孩子已经听说过这个框架的大名了,也听说了 SQLAlchemy 没有 Django 的 Models 好用 我在这里辟谣一下, Models 紧紧只是配置和使用比较简单,因为他是Django自带的ORM框架,也正是因为是Django原生的,所以兼容性远远不如SQLAlchemy 真正算得上全面的ORM框架是我们的SQLAlchemy ORM框架,它可以在任何使用SQL查询时使用 当然了,无论是使用什么

flask框架----整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

【Flask】关于Flask的request属性

前言 在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取参数.这篇文章是总结如何使用request. 关于request 在Flask的官方文档中是这样介绍request的: 对于 Web 应用,与客户端发送给服务器的数据交互至关重要.在 Flask 中由全局的 request 对象来提供这些信息. 从Flask模块导入request: from fla

WTForms In Flask(WTForms在Flask中的应用)

WTForms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装wtforms : pip3/pip install wtforms 用户登录/注册示例 项目目录结构 flask-wtforms-example │ app.py │ └─templates add_user.html index.html login.html register.html users.html 用户登录 当用户登录时候,需要对用户提交的用户名和密码进行多种格式校验. 如