当前位置: 首页 > news >正文

flask创建步骤

1.在__init__.py中创建db对象

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

2.同样的在__init__.py中create_app函数中让app传入到db中

def create_app():app = Flask(__name__)app.config.from_object('settings.DevelopmentConfig')app.register_blueprint(ac)app.register_blueprint(hm)db.init_app(app)Auth(app)return app

3.写配置文件,在settings中将连接字符串定义在配置文件中

class BaseConfig(object):# SESSION_TYPE = 'redis'  # session类型为redis# SESSION_KEY_PREFIX = 'session:'  # 保存到session中的值的前缀# SESSION_PERMANENT = True  # 如果设置为False,则关闭浏览器session就失效。# SESSION_USE_SIGNER = False  # 是否对发送到浏览器上 session:cookie值进行加密SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/s8day130db?charset=utf8"SQLALCHEMY_POOL_SIZE = 5SQLALCHEMY_POOL_TIMEOUT = 30SQLALCHEMY_POOL_RECYCLE = -1# 追踪对象的修改并且发送信号SQLALCHEMY_TRACK_MODIFICATIONS = FalseSECRET_KEY = "11111jfadfqaee"class ProductionConfig(BaseConfig):pass

4.定义models.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, UniqueConstraint, Index,DateTime,ForeignKey
from demo import dbclass Users(db.Model):__tablename__ = 'users'id = Column(Integer, primary_key=True,autoincrement=True)name = Column(String(32),nullable=False,unique=True)pwd = Column(String(32),nullable=False)

5.穿件数据库表,编写离线脚本:drop_create_table.py

from demoimport db
from demoimport create_app
from demoimport modelsapp = create_app()
with app.app_context():db.drop_all()db.create_all()# data = db.session.query(models.Users).all()# print(data)

6.在视图函数中使用sqlalchemy操作数据库

from demo import models
from demoimport db
ac = blueprints.Blueprint('ac',__name__)@ac.route('/login',methods=['GET','POST'])
def login():data = db.session.query(models.Users).all()db.session.commit()return "login"

相关文章:

  • 利用 Pandoc + ChatGPT 优雅地润色论文,并保持 Word 公式格式:Pandoc将Word和LaTeX文件互相转化
  • 第八章 应用参数为约束建模 P1|系统建模语言SysML实用指南学习
  • 迭代新品 | 第四代可燃气体监测仪,守护燃气管网安全快人一步
  • qt-C++笔记之treeWidget初次使用
  • Sql Server 2017主从配置之:事务日志传送
  • P3879 [TJOI2010] 阅读理解- 字典树
  • Java方法中不使用的对象应该手动赋值为NULL吗?
  • JS 新操作符 —— “?.”、“??”、“??=”
  • Excel 文件比较工具 xlCompare 11.01 Crack
  • Python编程陷阱(五)
  • 【Java并发编程二】线程的基本知识
  • YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度
  • MSYS2介绍及工具安装
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • excel用RAND函数、或者RAND.NV函数生成随机数、这两个函数的区别
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • crontab执行失败的多种原因
  • Elasticsearch 参考指南(升级前重新索引)
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Redash本地开发环境搭建
  • spark本地环境的搭建到运行第一个spark程序
  • 测试如何在敏捷团队中工作?
  • 对JS继承的一点思考
  • 聊一聊前端的监控
  • 浏览器缓存机制分析
  • 如何解决微信端直接跳WAP端
  • 跳前端坑前,先看看这个!!
  • 小程序01:wepy框架整合iview webapp UI
  • 云大使推广中的常见热门问题
  • 带你开发类似Pokemon Go的AR游戏
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 组复制官方翻译九、Group Replication Technical Details
  • # 计算机视觉入门
  • #Lua:Lua调用C++生成的DLL库
  • (+4)2.2UML建模图
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C++17) optional的使用
  • (二)斐波那契Fabonacci函数
  • (数据结构)顺序表的定义
  • (四)Controller接口控制器详解(三)
  • (未解决)macOS matplotlib 中文是方框
  • .NET 设计模式初探
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net和jar包windows服务部署
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @RequestBody与@ResponseBody的使用
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [Android] Implementation vs API dependency
  • [Android]竖直滑动选择器WheelView的实现
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [ARM]ldr 和 adr 伪指令的区别