flask闪现 flash
flash和get_flashed_messages()的关系是两者配合使用,flash就是在程序运行中实现交互,反馈信息。
flash(messages,categories),flash函数具有两个参数:
- 第一个参数是你将要放进去的字符串消息。
- 第二个默认参数category,代表消息的类别,默认为message(消息,普通)。
get_flashed_messages(with_categories, category_filter) 两个默认参数
- 两个参数都是可选的。如果接收到的消息具有类别,则第一个参数是元组。第二个参数仅用于显示特定消息。
通常在路由规则的某个视图函数里调用flash函数,在与该视图函数渲染的模板html文件中,调用get_flashed_messages()获取flash函数传的message
flask上传下载文件
我写flask项目都是按自己的一套项目结构,而且这里都没用flask_migrate和flask_script,这里为了好演示,就全都写在一个py文件里。
1 | import os |
- index.html
1 | <html> |
在这个内容的探索中,我才慢慢搞清楚render_template和redirect的区别,以及url_for()的参数。
render_template()模板渲染,请求到某个页面,将路由规则及视图函数和html挂钩。redirect(url_for())重定向函数,url_for(’’)参数为视图函数的名称,如果该视图函数名称过于复杂,可以在对应的路由规则上添加endpoint参数,url_for就传endpoint的值,就可以定位到这个函数。
sqlite
sqlite是一个python内置的数据库,我目前只会在pycharm里通过类似下面的命令创建一个spqlite数据库和对应表。然后在DATABASE处查看表结构。(可能之后会熟悉,之前用SQLAlchemy连接mysql,是自己在命令行里登录mysql,键入create database xxx charset=utf8;建好库,再在flask里定义好model类,创建表。而sqlite的数据库是一句sqlite3.connect('xxx.db')建立的)
- sqlite创建库和表
1 | import sqlite3 |
在进一步的摸索中,也解决了之前的疑惑,我一直以为 flask_sqlalchemy和sqlite是并列可替代关系,它们才不是呢。SQLAlchemy可以连接各类数据库,当然包括sqlite。
我要记录怎么连接sqlite,以及curd。
1 | from flask import Flask, render_template, request, redirect, url_for |
- home.html
1 |
|
- list.html
1 |
|
- result.html
1 |
|
- student.html
1 | <html> |
flask_sqlalchemy
1 | from flask import Flask, request, flash, url_for, redirect, render_template, send_from_directory, current_app |
- new.html
1 |
|
- show_all.html
1 |
|