Flask自带的flask_sqlalchemy的运用

Flask自带的flask_sqlalchemy的运用

from flask import  Flask,render_template,redirect
import os
from flask_sqlalchemy import SQLAlchemy

app=Flask(__name__)
#获取此文件夹的绝对路径
baseDir=os.path.abspath(os.path.dirname(__file__))
#在此文件夹的下面创建数据库
app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///'+os.path.join(baseDir,'blog.sqlite')
#自动提交
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
#解决一个警告,不加也没事
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

#创建SQLAlchemy对象
db=SQLAlchemy(app)
#文章类
class Article(db.Model):
    _tablename_='article'
    id=db.Column(db.Integer,primary_key=True)
    title=db.Column(db.String(32))
    picture=db.Column(db.String(64))#保存图片路径
    time=db.Column(db.DATETIME)
    description=db.Column(db.TEXT)

#同步数据库
db.create_all()
from flask import request
from datetime import datetime
@app.route('/add_article/',methods=['GET','POST'])
def add_article():
    if request.method=='POST':
        #获取数据
        form_data=request.form#前端传过来的文字数据,在这里接收
        file_data=request.files#前端传过来的图片文件,在这里接收
        picture=file_data.get('picture')#获取图片对象
        
        #创建数据并存入数据
        author=Article(
            title=form_data.get('title'),
            description = form_data.get('description'),
            picture = '/static/img/' + picture.filename,# 图片名称
            time = datetime.now()
        )

        #保存上传图片
        #值得一提的是这里可能会报错,到时候换成绝对路径即可
        picture.save('static/img/'+picture.filename)
        #保存到数据库
        session=db.session
        session.add(author)
        return redirect('/article_list/')
    return render_template('add_article.html')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值