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脚本命令
  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/manjian/p/13728825.html
Copyright © 2011-2022 走看看