博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask踩坑和排坑记录
阅读量:5898 次
发布时间:2019-06-19

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

开篇

最近学习Django开发网页, 后来由于Django开发比较繁琐以及可迁移性较差, 于是转学flask, 从而有了这一篇文章, 顺便测试一下我的博客发文功能:P

项目依赖

虽然flask较Django更轻量, 版本间语法差别不大, 但还是会有一些小坑. 比如在使用flask-sqlalchemy时报错, 原因是版本过新或过旧, 另外flask的扩展包需要另外安装, 这里注意一下就行. 下面列出个人博客项目的安装依赖(python3.5&python3.6测试通过):

Flask_SQLAlchemy==2.1

Flask==1.0.2
Markdown==2.6.11
Flask_Bootstrap==3.3.7.1

数据库

数据库的使用是网页编写的一个非常重要的部分, 基本上读取, 存入, 登录, 注销等等操作都和数据库相关, 本项目使用sqlite3, 操作起来较为简单. 简单总结一下flask-sqlalchemy的使用技巧:

  • 路径:

    MySQL: mysql+pymysql://username:password@hostname/database

    Postgres: postgresql://username:password@hostname/database
    SQLite(Unix): sqlite:absolute/path/to/database
    SQLite(Windows): sqlite:///c:/absolute/path/to/database

  • 初始化:

app = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///E:/code/Python/flask/Elvin_Blog/schema.sql'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)
  • 操作语句:
User.query.all() # 搜索所有信息User.query.get(id) # 搜索对应主键信息User.query.filter_by(username='').all()User.query.filter_by(username='').first()db.session.add(User(username,password))db.session.commit()# 修改信息User.query.filter_by(id=id).first().username='newusername'db.session.commit()

自定义过滤器

我希望能将markdown格式的内容转化并直接显示, 这就需要用到flask的过滤器功能, 阅读了相关文章, 只需要自定义一个过滤器, 代码如下:

from flask import Markupimport markdown@app.template_filter('toMarkdown')def toMarkdown(content):    return Markup(markdown.markdown(content))

通过jinja2调用时, 只需要 {

{ content|toMartdown }} 即可.

用户登录与登出

通过MD5加密密码并保存在数据库, 使用flask的session, 登录成功后, 代码添加 session['username'] = username , 同理, 在进入一些诸如管理页面的页面时, 只需要添加 if 'username' in session: 加以判断即可.

转载于:https://www.cnblogs.com/koonchung/p/9200502.html

你可能感兴趣的文章
GAN专题阅读小组 | 每周一起读 #05
查看>>
Windows 10 安全新特性保障现代企业安全,掌握创新场景机遇
查看>>
AMD与天津海光合资生产x86服务器芯片
查看>>
提升CRM实施成功率
查看>>
雅虎开源了TensorFlowOnSpark
查看>>
ERP实施应立足于两点
查看>>
网络安全保险在欧洲更受欢迎
查看>>
三星未及时提供系统更新 荷兰消协把它告上法庭
查看>>
如何处理IT事件管理以避免混乱
查看>>
投资半导体产业不能只想赚快钱
查看>>
物联网确保消费者隐私安全 才能起飞
查看>>
iPhone升級iOS 10变砖 可用iTunes恢复
查看>>
揭秘使用免费WiFi的真实代价
查看>>
思科:网络可见化仍然是安全的数字化转型改造的关键
查看>>
CloudCC CRM梳理CRM软件已经实现的发展
查看>>
《交互式程序设计 第2版》一2.3.2 数组
查看>>
移动互联网金融app 存在信息安全问题
查看>>
Android 开发中使用 SQLite 数据库
查看>>
Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
查看>>
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>