基于一个flask项目,加入flask-SQLAlchemy

1.加入falsk-sqlalchemy第三方组件

  1. from flask import Flask
  2.  
  3. # 导入Flask-SQLAlchemy中的SQLAlchemy
  4. from flask_sqlalchemy import SQLAlchemy
  5.  
  6. # 实例化SQLAlchemy
  7. db = SQLAlchemy()
  8. # PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前
  9.  
  10. from .views.users import user
  11.  
  12. def create_app():
  13. app = Flask(__name__)
  14.  
  15. # 初始化App配置 这个app配置就厉害了,专门针对 SQLAlchemy 进行配置
  16. # SQLALCHEMY_DATABASE_URI 配置 SQLAlchemy 的链接字符串儿
  17. app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:DragonFire@127.0.0.1:3306/dragon?charset=utf8"
  18. # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小
  19. app.config["SQLALCHEMY_POOL_SIZE"] =
  20. # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间
  21. app.config["SQLALCHEMY_POOL_TIMEOUT"] =
  22. app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
  23.  
  24. # 初始化SQLAlchemy , 本质就是将以上的配置读取出来
  25. db.init_app(app)
  26.  
  27. app.register_blueprint(user)
  28.  
  29. return app
  30.  
  31. MyApp/__init__.py
  32.  
  33. MyApp/__init__.py

__init__.py

2.建立models.py ORM模型文件

  1. from MyApp import db
  2.  
  3. Base = db.Model # 这句话你是否还记的?
  4. # from sqlalchemy.ext.declarative import declarative_base
  5. # Base = declarative_base()
  6. # 每一次我们在创建数据表的时候都要做这样一件事
  7. # 然而Flask-SQLAlchemy已经为我们把 Base 封装好了
  8.  
  9. # 建立User数据表
  10. class Users(Base): # Base实际上就是 db.Model
  11. __tablename__ = "users"
  12. __table_args__ = {"useexisting": True}
  13. # 在SQLAlchemy 中我们是导入了Column和数据类型 Integer 在这里
  14. # 就和db.Model一样,已经封装好了
  15. id = db.Column(db.Integer,primary_key=True)
  16. username = db.Column(db.String())
  17. password = db.Column(db.String())
  18.  
  19. if __name__ == '__main__':
  20. from MyApp import create_app
  21. app = create_app()
  22. # 这里你要回顾一下Flask应该上下文管理了
  23. # 离线脚本:
  24. with app.app_context():
  25. db.drop_all()
  26. db.create_all()
  27.  
  28. MyApp/models.py
  29.  
  30. MyApp/models.py

models.py

3.登录视图函数的应用

  1. from flask import Blueprint, request, render_template
  2.  
  3. user = Blueprint("user", __name__)
  4.  
  5. from MyApp.models import Users
  6. from MyApp import db
  7.  
  8. @user.route("/login",methods=["POST","GET"])
  9. def user_login():
  10. if request.method == "POST":
  11. username = request.form.get("username")
  12. password = request.form.get("password")
  13.  
  14. # 还记不记得我们的
  15. # from sqlalchemy.orm import sessionmaker
  16. # Session = sessionmaker(engine)
  17. # db_sesson = Session()
  18. # 现在不用了,因为 Flask-SQLAlchemy 也已经为我们做好会话打开的工作
  19. # 我们在这里做个弊:
  20. db.session.add(Users(username=username,password=password))
  21. db.session.commit()
  22.  
  23. # 然后再查询,捏哈哈哈哈哈
  24. user_info = Users.query.filter(Users.username == username and User.password == password).first()
  25. print(user_info.username)
  26. if user_info:
  27. return f"登录成功{user_info.username}"
  28.  
  29. return render_template("login.html")
  30.  
  31. MyApp/views/user.py
  32.  
  33. MyApp/views/user.py

views

其实Flask-SQLAlchemy比起SQLAlchemy更加的简单自如,用法几乎一模一样,就是在配置和启动上需要注意与Flask的配合就好啦

 
 
 

14,flask-sqlalchemy项目配置的更多相关文章

  1. Flask之项目配置,目录构建,闪现

    综合案例:学生成绩管理 新建项目目录students,并创建虚拟环境 mkvirtualenv students 安装开发中使用的依赖模块 pip install flask==0.12.4pip i ...

  2. 【flask】flask项目配置 app.config

    [理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...

  3. flask 案例项目基本框架的搭建

    综合案例:学生成绩管理项目搭建 一 新建项目目录students,并创建虚拟环境 mkvirtualenv students 二 安装开发中使用的依赖模块 pip install flask==0.1 ...

  4. flask SQLAlchemy中一对多的关系实现

    SQLAlchemy是Python中比较优秀的orm框架,在SQLAlchemy中定义了多种数据库表的对应关系, 其中一对多是一种比较常见的关系.利用flask sqlalchemy实现一对多的关系如 ...

  5. 理解 IntelliJ IDEA 的项目配置和Web部署

    1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse ...

  6. 在找一份相对完整的Webpack项目配置指南么?这里有

    Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...

  7. Flask之项目创建,路由以及会话控制

    Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎 ...

  8. 理解 IntelliJ IDEA 的项目配置和Web部署(转载)

    理解 IntelliJ IDEA 的项目配置和Web部署   1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最 ...

  9. flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作

    flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...

随机推荐

  1. Eclipse JSP 页面设置 charset=UTF-8

    windows —> Preferences —> 搜索框中输入:JSP,设置如下:

  2. jmeter之HTTP信息头管理器

    信息头管理器作用: HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post)的时候,往往后端需要一些验证信息,比如说we ...

  3. K星异客

    http://baike.baidu.com/view/222058.htm 这部改编自基恩·布汝尔1995年出版的同名小说的电影在当年的十月档票房榜上称冠.本来这部电影的外星人主人公属意于威尔.史密 ...

  4. 【转载】每天一个Linux命令

    目  录 每天一个linux命令(1)  : ls 命令 每天一个linux命令(2)  : cd 命令 每天一个linux命令(3)  : pwd 命令 每天一个linux命令(4)  : mkdi ...

  5. BZOJ 3090: Coci2009 [podjela]

    3090: Coci2009 [podjela] Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 23  Solved: 17[Submit][Statu ...

  6. MySQL入门很简单: 15 java访问MySQL数据库

    1. 连接数据库 1.1 下载安装驱动 java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库.JDBC的编程接口提供的接口和类与MyS ...

  7. 动态原型模式 js

    动态原型模式 function Person(name,age){ this.name = name; this.age = age; if(typeof this.sayName != " ...

  8. SQL SERVER 下:1、递归查询父分类下的各个子分类。 2、查询每个商品分类中最贵的前两个商品SQL

    1.递归查询父分类下的各个子分类.表设计: SQL: --CTE 语句(适用于MSSQL2005以后版本) with cte_testNavi(Id,Name,Pid ) as ( --这是查询语句 ...

  9. @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?

    @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?  发布于 180天前  作者 qq_b02c4863  144 次浏览  复制  上一个帖子  下一个帖子 ...

  10. Cocos2d-x手机游戏开发必备C++语言基础

    http://edu.51cto.com/course/course_id-1380-page-1.html