博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask 学习笔记 mvc ,sqlalchemy(insert,update)
阅读量:6988 次
发布时间:2019-06-27

本文共 3072 字,大约阅读时间需要 10 分钟。

hot3.png

# 模型类from sqlalchemy import Column, Integer, Stringfrom application.database.mysqldb import Baseclass UserModel(Base):    __tablename__ = 'user'    id = Column(Integer, primary_key=True)    name = Column(String)    def __init__(self, id=None, name=None):        self.id = id        self.name = name

 

# -*- coding: utf-8 -*-# 数据库连接类from sqlalchemy import create_enginefrom sqlalchemy.orm import scoped_session, sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseengine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/test?charset=utf8",                       convert_unicode=True,                       echo=True)db_session = scoped_session(sessionmaker(autocommit=False,                                         autoflush=False,                                         bind=engine))Base = declarative_base()Base.db_session = db_sessionBase.query = db_session.query_property()def init_db():    # 在这里导入所有的可能与定义模型有关的模块,这样他们才会合适地    # 在 metadata 中注册。否则,您将不得不在第一次执行 init_db() 时    # 先导入他们。    Base.metadata.create_all(bind=engine)

 

# -*-coding: utf-8 -*-# 控制器类from flask import render_template, make_response, jsonify, request, flashimport jsonfrom flask.views import Viewfrom application.models.UserModel import UserModelclass User(View):    '''    用户类    '''    methods = ['GET', 'POST']    def dispatch_request(self):        user = UserModel.query.filter(UserModel.id == 2).first()        user_obj = {"id":user.id, "name":user.name}        return jsonify(user_obj)class UserLogin(View):    methods = ['GET', 'POST']    def dispatch_request(self):        if request.method == 'POST':            username = request.form['username']            user = UserModel.query.filter(UserModel.name == username).first()            if user is None:                _user_save = UserModel(name=username)                UserModel.db_session.add(_user_save)                UserModel.db_session.commit()                flash(u"登陆失败!")            else:                UserModel.query.filter(UserModel.id > 2).update({UserModel.name:'tets2'})                UserModel.db_session.commit()                flash(u"登陆成功!")            return render_template('user/login.html')        else:            return render_template('user/login.html')
{% block head %}
{% block title %}{% endblock %} - My Webpage{% endblock %}{% with messages = get_flashed_messages() %} {% if messages %}
    {% for message in messages %}
  • {
    { message }}
  • {% endfor %}
{% endif %}{% endwith %}
{% block content %}{% endblock %}
{% block footer %}
{% endblock %}
{% extends "common/header.html" %}{% block head %} {
{ super() }} {% endblock %}{% block content %}
{% endblock %}{% block footer %} {
{ super() }}{% endblock %}

转载于:https://my.oschina.net/phper1234/blog/1498969

你可能感兴趣的文章
iOS关联对象
查看>>
iOS之传值
查看>>
探索webpack热更新对代码打包结果的影响(二)
查看>>
pandas 修改 DataFrame 列名
查看>>
《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注
查看>>
leetcode409.Longest Palindrome
查看>>
Nervos 双周报第 3 期:佛系新年之后的开工大吉!
查看>>
【PHP 扩展开发】Zephir 基础篇
查看>>
字节跳动开源Go结构体标签表达式解释器,成请求参数校验的杀手锏
查看>>
怎么将在线录制的视频转为GIF动态图
查看>>
【剑指offer】顺时针打印矩阵
查看>>
leetcode讲解--861. Score After Flipping Matrix
查看>>
聊聊JavaScript和Scala的表达式 Expression
查看>>
[原]数据科学教程: 如何使用 mlflow 管理数据科学工作流
查看>>
JAVA 8 函数式接口--Supplier
查看>>
Dockerfile多阶段构建原理和使用场景
查看>>
七牛云赵之健:多维度融合赋能视频 AI 的实践
查看>>
CSS3中的box-sizing
查看>>
云计算新风向:多云战略优化企业云支出
查看>>
Windows改Linux(一),新建Ubuntu虚拟机小白向导
查看>>