from flask import Flask
from flask_sqlalchemy import SQLAlchemy #区别 sqlalchemy这是第三方模块不属于flask
app = Flask(__name__) HOSTNAME = '127.0.0.1' PORT = 3306 DATABASE = 'first_sqlalchemy_demo' USERNAME = 'root' PASSWORD = '' #dialect+driver://username:password@host:port/database
DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/" \
"{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE) #SQLALCHEMY_DATABASE_URI是定死的,只能这么写
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) # app.debug = True#这里注意,这样开启debug,数据映射到数据库两次 class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
username = db.Column(db.String(50),nullable=False) class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(50),nullable=False)
uid = db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False)
author = db.relationship('User',backref='articles') # db.drop_all()
# db.create_all() #增加数据
def create_data_mysql():
user = User(username='zhiliaoxuetang')
article = Article(title='python flask')
article.author = user #映射到数据库中
db.session.add(article)
db.session.commit() #查询
#User.query 相当于db.session.query(User),如果要做复杂的查询还是要用db.session.query(User)
# user_all_desc = User.query.order_by(User.id.desc()).all()
# print(user_all_desc) #修改数据
# user_update = User.query.filter(User.id==1).first()
# user_update.username = 'old boy'
# db.session.commit() #删除数据
user_delete = User.query.filter(User.id==2).first()
db.session.delete(user_delete)
db.session.commit() @app.route('/')
def hello_world():
return 'hello world!' if __name__ == '__main__':
# create_data_mysql()
app.run()

flask_sqlalchemy基本设置的更多相关文章

  1. Windows Server 2008 R2 组策略基本设置

    域控组策略基本设置 标注: 组策略计算配置:系统需要重启才生效                          组策略用户配置:系统注销即可生效 一.              域用户登录桌面后自动 ...

  2. css基本设置

    css引入方式: 头部引入:在HTML页面头部编写程序(一般用在访问量大的网页上) 标签内引入:在标签内直接写样式(优先级最高,但难于维护,会沉积大量代码) 外部引入:用link标签引入(常用 ,维护 ...

  3. 第三章 Odoo基本设置

    登录 正常访问http://localhost:8069后,登录的界面如下: 这是Odoo默认的认证方式,也是我们最常见最熟悉的认证方式,7.0以前,数据库中的密码都是以明文方式存储,可以很轻松地在r ...

  4. CentOS 基本设置

    CentOS 基本设置 1.更改163源 在使用yum的时候,可能yum被锁,可用如下命令解锁:rm -rf /var/run/yum.id 2.编译安装开源软件 安装自己编译的开源软件一般都会在/u ...

  5. Android Studio系列教程二--基本设置与运行

    Android Studio系列教程二--基本设置与运行 2014 年 11 月 28 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处! 上面一篇博客,介绍了Studio的 ...

  6. secure crt 基本设置

    基本设置1.修改设置 为了SecureCRT用起来更方便,需要做一些设置,需要修改的有如下几处: 1.退 出主机自动关闭窗口 Options => Global ptions => Gen ...

  7. 在云服务器搭建WordPress博客(四)WordPress的基本设置

    前面说了 如何安装WordPress,接下来我们需要快速熟悉WordPress,以及进行一些必要的基本设置. 开始设置之前,建议大家先点击一篇左边菜单栏的每一个选项,看看到底是做什么用的.下面开始说一 ...

  8. win下Maven安装和基本设置

    注:本文介绍 Windows 平台上 Maven 的安装.Maven 3 需要运行在 JDK1.4 以上的版本上. 非原创:原创地址 http://www.ibm.com/developerworks ...

  9. ethtool的基本设置

    ethtool是设置网卡属性.IP/TCP相关协议属性的基本工具,功能还是很强大的.ubuntu的版本里没有默认集成,使用apt-get install 安装之.... 使用概要:ethtool et ...

随机推荐

  1. 【Winform-自定义控件】 DataGridView多维表头

    [datagridview与treeview绑定] treeview            代码: DataTable dtable = new DataTable("Rock") ...

  2. Remote API(RAPI)之 系统信息

    RAPI提供了一些取系统信息的函数 CeGetSystemInfo:返回当前系统信息 CeGetSystemMetrics:获取Windows元素的尺寸和系统设置 CeGetVersionEx:获取当 ...

  3. mysql清表时有外键关联处理办法

    可以忽视关联的情况下: 先取消主外键关系验证:SET FOREIGN_KEY_CHECKS = 0; 然后删除需要删除的数据:truncate table table_name; 最后恢复:SET F ...

  4. npm脚本编译代码

    echo offset codeUrl=D:\svn\oppo_mis\OCSS_NEW\Branches\ProjectCode20190909\h5_ocssset publishUrl=D:\P ...

  5. javaScript用正则来获取url传递的参数

    用window.location.href获取url再js正则来获得需要的参数: 这个正则有多种写法,这里我选择这样写,要查找的属性名我直接以参数的形式传进去,用正则查找,以"?&# ...

  6. OUC_Summer Training_ DIV2_#9 719

    其实自己只会做很简单的题,有时都不想写解题报告,觉得不值得一写,但是又想到今后也许就不会做ACM了,能留下来的东西只有解题报告了,所以要好好写,很渣的题也要写,是今后的纪念. B - B Time L ...

  7. Linux 竞态条件和临界区

    1. 临界区和竞态条件: 临界区:访问和操作共享数据的代码段: 竞态条件:当有多个线程同时进入临界区时,执行结果取决于线程的执行顺序: 如下述代码,当多个线程同时调用func函数,对共享数据sum进行 ...

  8. Forcepoint

    Forcepoint One Endpoint Diagnostics Tool C:\Program Files\Websense\Websense Endpoint\WEPDiag.exe &qu ...

  9. Hibernate系列1:入门程序

    1.传统的java数据库连接 在传统的开发中,如果要建立java程序和数据库的连接,通常采用JDBC或者Apache Commons DbUtils开发包来完成.他们分别有以下特点: JDBC: 优点 ...

  10. vue生命周期updated的触发时机之debug过程中发现的firefox问题

    现象描述: 断点位置1 谷歌debug的过程: 火狐debug的过程: 只要在改变数据之后有断点停顿,就会先去执行updated函数 断点位置2 此时火狐和谷歌是一样的效果,但是执行顺序是不一致的 谷 ...