初入flask,看了网上的一些东西,留下笔记,供以后参考学习,
一.flask项目大体结构如下
-|--app--|--static
|--template 页面及部分逻辑
|--utils 逻辑
|--__init__.py 初始化
|--models.py sqlalchemy用的models对象也是映射的表
|--views.py 主要是路由 url_for反向定义
-|--config.py 设置
-|--create_db.py 创建mysql数据库对应表
-|--run.py
二.首先配置sqlalchemy连接mysql数据库
在config.py中添加
#mysql连接语句
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://mysql用户名:mysql用户密码@localhost:3306/mysql数据库名?charset=utf8'
#
SQLALCHEMY_TRACK_MODIFICATIONS = True
在__init__.py中添加
from flask import Flask
from flask_sqlalchemy import SQLAlchemy 导入sqlalchemy
app = Flask(__name__) flask类的实例
app.config.from_object('config') 读取config.py里的配置
db = SQLAlchemy(app) sqlalchemy的实例
from app import views,models 导入views和models
在models.py中添加
class User(db.Model):
__tablename__ = 'users' 表名
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
def __init__(self,username): 相当于构造函数
self.username=username
def __repr__(self): 返回
return '
然后在create_db.py中添加
from app import db
db.create_all() 创建所有models的表
在终端中运行python create_db.py
就可以看到创建好的users数据表
三。插入数据
在utils文件夹下创建user.py添加以下代码
from app import db 导入alchemy对象
from .models import User 导入user类
newobj = User('name', 'email', 'pwd')
try:
db.session.add(newobj)
except:
db.session.rollback()
else:
db.session.commit()
即可添加成功,还可以使用db.session.merge()去更新,如果重复就覆盖,不重复就添加
批量添加则用db.session.add_all(models)
如:newobj = [User('name', 'email', 'pwd'),User('name1', 'email1', 'pwd1')]
db.session.add(newobj)
如果添加的值为unicode编码或特殊字符,可以用json.dumps()将其转换为json对象存储在Mysql数据库,读出后再用json.loads()又转换为字符串