flask中需要的基本配置信息
1、秘钥设置:
app.secret_key = '随意设置'
2、SQLALCHEMY配置:
# 连接数据库
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:@127.0.0.1:3306/数据库名'
# 动态追踪修改设置,如未设置只会提示警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# 查询时会显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
2、数据库迁移:
导包:
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
配置:
# 支持黑窗口 输入命令
manager = Manager(app)
# 将数据库迁移的命令加入到黑窗口中 作用是用于更新数据库的结构
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
执行迁移命令
:
1.python 文件 db init
2.python 文件 db migrate -m"版本名(注释)"
3.python 文件 db upgrade 然后观察表结构
注意: 只有第一次生成迁移文件夹时候,才需要执行第一条命令。
修改程序入口
if __name__ == '__main__':
# app.run(debug=True)
manager.run()
4、闪现消息:
from flask import Flask, flash
页面弹窗:
{% for mes in get_flashed_messages() %}
<script>alert('{{ mes }}')</script>
{% endfor %}
4、菜单栏:
(1)、 header内容
<style>
ul{
list-style: none;
}
ul li{
display: block;
margin-right: 20px;
float: left;
}
</style>
(2)、body内容
<body>
<div style="float: left; width: 100%">
<ul>
<li><a href="路由接口">分类1</a></li>
<li><a href="路由接口">分类2</a></li>
<li><a href="路由接口">分类3</a></li>
<li><a href="路由接口">分类4</a></li>
<li><a href="路由接口">分类5</a></li>
</ul>
</div>
<hr >
<table style="float: left;" border="1">
<tr>
<td>序号</td>
<td>商品名称</td>
<td>价格</td>
</tr>
<tr>
<td>1</td>
<td>牛角面包</td>
<td>200.00</td>
</tr>
<tr>
<td>2</td>
<td>法式面包</td>
<td>100.00</td>
</tr>
</table>
</body>
6、日志配置
(1) 导包:
import logging
from logging.handlers import RotatingFileHandler
2)配置:
#日志文件,作用:用来记录程序的运行过程,比如:调试信息,接口访问信息,异常信息
def log_file(level):
# 设置日志的记录等级,设置日志等级: 常见等级有:DEBUG < INFO < WARING < ERROR < FATAL(CRITICAL)
logging.basicConfig(level=level) # 调试debug级
# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件编号
file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024*1024*100, backupCount=10)
# 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息
formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s')
# 为刚创建的日志记录器设置日志记录格式
file_log_handler.setFormatter(formatter)
# 为全局的日志工具对象(flask app使用的)添加日志记录器
logging.getLogger().addHandler(file_log_handler)
7、CSRF配置
(1)导包:
from flask_wtf import CSRFProtect
(2)配置:
CSRFProtect(app)
(3)表单配置:
<form method="post" action="/">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
</form>
8、项目配置文件
class Config(object):
"""工程配置信息"""
DEBUG = True
"""SQLAlchemy 配置"""
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:12345678@127.0.0.1:3306/imformation'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
# 数据库内容发送改变之后,自动提交
# 查询时会显示原始SQL语句
# SQLALCHEMY_ECHO = True
SECRET_KEY = '1811'
LEVEL = 'DEBUG'
flask中需要的基本配置信息的更多相关文章
- JSP/JSF从web.xml中取出context-param的配置信息
JSP/JSF从web.xml中取出context-param的配置信息. 应用场景:我们配置了项目的版本信息,想让他显示在页面上,如: <context-param><!-- ## ...
- Flask(2)- 装饰器的坑及解决办法、flask中的路由/实例化配置/对象配置/蓝图/特殊装饰器(中间件、重定义错误页面)
一.装饰器的坑以及解决方法 1.使用装饰器装饰两个视图函数,代码如下 from flask import Flask, redirect, render_template, request, sess ...
- C#程序中获取电脑硬件配置信息的一种方法
本文介绍获取cpu信息和内存信息的方法,根据本文所举例的代码可以举一反三获取更多信息. 获取cpu名称的方法: public string GetCpuInfo() { ManagementObjec ...
- Asp.net Core Startup Class中是如何获取配置信息的
默认的网站构建方式 VS2015新建asp.net core项目,项目建立完成后,有两个文件,Program.cs和Startup.cs. public class Program { public ...
- cisco和h3c网络设备中一次性打印全部配置信息
cisco的是全页打印配置信息的命令: #terminal length 0 #show run 华为和h3c的是: >screen-length 0 temporary >display ...
- Flask中的对象的配置
常用的有 1.'DEBUG': False, # 是否开启Debug模式 2.'TESTING': False, # 是否开启测试模式 3.'SECRET_KEY': None # 在启用Flask内 ...
- 从Config文件中读取节点的配置信息
下面是web.config中与本内容有关的细节 <appSettings> <add key="servername" value="www" ...
- flask 中的ORM ( 二 )
1 关系映射 1 多对多 1 什么是多对多 A表中的一条数据可以与B表中任意多条数据相关联 B表中的一条数据可以与A表中任意多条数据相关联 2 实现 在数据库中使用第三张表(关联表) 在编程语言中,可 ...
- 【flask】使用类组织配置-使用工厂函数创建程序实例
[需求] 使用配置类管理flask管理测试环境, 通过1个参数即可控制Flask是运行develpment环境还是production环境(数据库配置,邮件配置也要根据环境的变化而变化) [思路] 1 ...
随机推荐
- 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from functools import reduce CHAR_TO_INT = { ': 0, ': ...
- vs code编写的时候自动回车的原因
今天在书写一个空白的scss文件的时候,刚打2个字就自动回车换行了: 测试了几次,发现了规律就是输入停下来0.5秒左右就会自动换行,比如,打了2个中文,再连续打一个句子,键盘虽然在动,但是vs cod ...
- react-redux-reducer
reducer是对dispatch(action)的响应,是一个纯函数,接受旧的state和action,返回新的state. //纯函数要注意的点,下面的例子myname不变 <script& ...
- 7. Reverse Integer Add to List★
题目内容: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 题目分 ...
- [图形学] B样条曲线 - 原理和C++实现的演示程序(附源码)
http://blog.csdn.net/mahabharata_/article/details/71856907 大二的时候,曾受老师所托,用C++而不是OpenGL去写B样条曲线的教学程序.时隔 ...
- 【命令】Ubuntu设置和查看环境变量
转自[Ubuntu]Ubuntu设置和查看环境变量 查看环境变量 env env命令是environment的缩写,用于列出所有的环境变量 export 单独使用export命令也可以像env列出所有 ...
- java往MongDB导入大量数据
好几月没写博客了~~~ --------------------- 在公司最近在搞用java往MongDB导入数据 现在是我刚导入2000W条数据了 所以就先写上吧,废话也不多说了 MongDB 我本 ...
- vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...
- Vue语法学习第五课——条件渲染
① v-if .v-else-if .v-else <div v-if="type === 'A'"> A </div> <div v-else-if ...
- L343 中译英
爱显摆的人遇事总喜欢标新立异.Showoffs never miss an opportunity to draw attention to themselves by some outrageous ...