1.立项准备
创建news_it04,而且要指定需要我们之前创建的环境
建立后的结果就是如下图
】
在到里面创建一个manage文件
右击news_it04>new>python file 创建后如下图
再把着七行代码写进manage里面
from flask import Flask app = Flask(__name_) @app.route("/") def index(): return "hello" if_name__ main app.runO
创建完这个我们还需要两个文件夹,分别是static,temlplates,
!!!!static上面有个图有了那是之前创建好的
static的好处我们会把css,js文件放进去,他会自动的或许路由,不需要我们很多操作
找到我们需要的资料
把这两个文件拖进我们我们在python中创建好的static,有时候我们会拖不进去,这时候我们就要用到winds的操作手法,把这两个文件手动的复制到news_it04的文件夹里
此时我们打开python看到我们需要的文件 而且以后我们访问资源会有默认的路由
static只能放静态文件,不能渲染,所以我们要创建一个templates,这个需要渲染的模板才放里面,因为static只能静态,不能渲染
news_it04>new>Directory>temlplates
这样我们的基础就好了
接下来我们配置app信息
app = Flask(__name__) app.config.from_object() #配置app信息
在写一个class Config: 打开DEBUG
class Config: DEBUG=True
设置配置类,把Config写进app
app.config.from_object(Config) #配置app信息
然后我们右击运行,运行成功就算写成功了
浏览器运行就如下图出现一个hello
mysql集成
导入mysql包
from flask_sqlalchemy import SQLAlchemy
这里我们导入mysql,用db来创建一个mysql链接对象
db = SQLAlchemy(app)
但是我们运行后会报错。
着两行报错出现两次。都是一样的。
我们仔细发现我们没设置mysql的链接和动态追踪。所以我们回到代码,在Config里面配置
class Config: DEBUG = True SQLALCHEMY_DATABASE_URI="mysql://root:mysql@127.0.0.1:3306/two_ti04" #指定mysql的路径 SQLALCHEMY_TRACK_MODIFICATIONS=Flask #是否开启动态追踪,我们选择关闭
mysql就集成完了
redis集成
导入包
from redis import StrictRedis
我们用redis_store来接收
redis_store = StrictRedis()
但是我们发现StrictRedis后面括号写东西。但是我们又不知道是什么,我么Ctrl+鼠标左键点击StrictRedis
我们看到主机号,端口等,这是默认的但是我们工作时候不一定,端口,主机不一样,所以不能写死。我们要变成Config配置里面的信息。
所以我们这样写,在Config里面我们设置主机和端口,因为我们使用的自己电脑写就是应一样,但是在公司就不一样了,这样写方便改动
REDIS_HOST = "127.0.0.1" #主机号 REDIS_POST = 6379#端口号
最后我们把Config导进设置,也就是进StrictRedis()里面
redis_store = StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_POST)
这里我们单纯的导入REDIS_HOST是不行的,因为我们的主机号端口号在Config配置里,所以我们先Config,再倒入我们事先写好的post,host。
接下来我们测试一下redis是否成功
我们在下面写
@app.route("/") def index(): redis_store.set("name","laoli") #测试session运行
运行点开网页出现hello
打开cmd,输入redis-cli.exe
我们会看到name表里的“laoli”
session集成
from flask import Flask,session
session的集成方式在导入flask的后面一个逗号加session就可以了,导入session我们就要设置
@app.route("/") def index(): # redis_store.set("name","laoli") #测试session session["age"]=28 return "hello"
把测试redis的给注释掉,但是我们运行后看到的是
session是需要秘钥的,所以我们在Config配置里面,写
SECRET_KEY ="asdsadsada"
随便往里面打。
然后重新运行
所以我们看到了session。
但是我们的session存在数据库,但是我们没有指定,所以我们需要导包
from flask_session import Session
看到后面我们需要实例化,但是注意我们不需要参数来接收了,需要一个传一个参数进去。
Session(app) #设置redis的存放数据库
但是还没有指定,ctrl+鼠标左键进入源码。
看到这个我们在Config配置信息里面写
SESSION_TYPE = "redis"#指定用redis来存储session信息 SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_POST)#指定那个redis来存储session信息
SESSION_USE_SIGNER= True #设置是否使用秘钥
SESSION_PERMANENT=60*60*24 #设置cession的储存时间为一天
配置完之后就直接运行。
然后直接去redis查看
CSRF集成
导入包
from flask_wtf import CSRFProtect
开启CSRF保护
CSRFProtect(app)#开启CSRF保护
脚本命令集成
导入包
from flask_script import Manager
把app交给Manager管理,在用小写manager来接收
manager = Manager(app)
在最后也不是app.run()了而是
manager.run()
然后我们右击发现启动不了了,点开第一个
照一下参数设置
点绿色三角就可以运行
此外在迁移文件也用到脚本导入包
from flask_migrate import Migrate,MigrateCommand
首先用大写Migrate建立app和db的联系,而下面的建立数据库的脚本
Migrate(app, db)#让app和db联系 manager.add_command("mysql",MigrateCommand)#创建mysql脚本命令