zoukankan      html  css  js  c++  java
  • 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脚本命令
  • 相关阅读:
    Linux统计文件个数
    python string与list互转
    Python中请使用isinstance()判断变量类型
    xpath提取多个标签下的text
    内存盘
    Watchdog
    渗透测试
    GMT与UTC简介
    ASN.1(抽象语法标记)
    Linux nmap
  • 原文地址:https://www.cnblogs.com/manjian/p/13728825.html
Copyright © 2011-2022 走看看