1.新闻框架搭建。

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脚本命令
原文地址:https://www.cnblogs.com/manjian/p/13728825.html