一、Flask常用模块
模块导入:
1. ---from itertools import chain
for item in chain(v1,v2):
print(item)
2. ---from flask import current_app
print(current_app.config)
3. ---from flask import Flask,render_template,request,redirect,session,url_for
4. ---from urllib.parse import urlencode,quote,unquote
5. ---import copy
6. ---from flask import Blueprint
7. ---import pymysql
8. ---from DBUtils.PooledDB import PooledDB, SharedDBConnection
9. ---from sqlalchemy import create_engine
10.---from sqlalchemy.orm import sessionmaker
11.---from sqlalchemy.orm import scoped_session
12.---from flask import flash , get_flashed_messages
13.---import functools
14.---import redis
15.---from flask import session
16.---from flask_session import Session
17.---import memcache
二、创建Flask对象
app = Flask(__name__)
app = Flask(__name__,static_folder='static', template_folder='templates') #添加静态文件和模板文件路径
app = Flask(__name__,instance_path=None, instance_relative_config=True) #从instance文件夹下找配置文件
# ----crm
# ----app
# ----instance
# -- setting.py
三、配置方式
import os
from flask import current_app
print(current_app.config)
app.secret_key='asd' #session加盐
方式一:(推荐使用)
app.config.from_object('settings.DevConfig')
方式二:
app.config.from_pyfile('settings.py')
方式三:
import os
os.environ['FLAKS-SETTINGS'] = 'settings.py'
app.config.from_envvar('FLAKS-SETTINGS')
方式四:
app.config['SESSION_COOKIE_NAME'] = 'session_lvning'
四、路由系统
from flask import Flask,render_template,request,redirect,session,url_for
app = Flask(__name__)
1.路由使用:
CBV:
from flask import Flask,url_for,views
class IndexView(views.MethodView):
# methods = ['POST']
decorators = [auth,]
def get(self):
v = url_for('index')
print(v)
return "GET"
def post(self):
return "GET"
app.add_url_rule('/index', view_func=IndexView.as_view(name='index'))
url和函数映射的两种方式:
方式1:
@app.route("/index",methods=['GET',"POST"])
def index():
return "index"
方式2:
app.add_url_rule('/index',methods=['GET',"POST"])
2.详细:
@app.route(rule , methods=None,endpoint=None, redirect_to=None,defaults=None,subdomain=None,strict_slashes=None,)
rule:'/index' 或 '/index/<int:nid>'
defaults: {'nid':2} #设置默认值,即时能匹配到也使用默认值
methods: ['GET',"POST&#