zoukankan      html  css  js  c++  java
  • flask 安装及基础学习(url_for反转,静态文件引入)

    pip3 install flask

    pycharm 创建项目

    默认的代码解释说明(及开启debug模式)

    #encoding:utf-8
    from flask import Flask    #从flask框架中导入flask这个类
    
    app = Flask(__name__)      #初始化一个flask对象,取名叫app,需要传递一个参数,(固定写法,__name__)
                       #1、方便flask框架去寻找资源 2、方便flask插件出现错误时,去定位问题
    
    @app.route('/')          #装饰器,作用为url函数的视图函数的映射
    def hello_world():
        return 'Hello World!'    #将结果返回给浏览器
    
    
    if __name__ == '__main__':
        app.run(debug=True)            #启动应用服务器,设置debug模式,定为程序出问题时的位置

    使用配置文件设置debug模式

    #新建config.py文件(这里文件名称自定义,以后所有的配置信息均可添加到这里),添加:
    DEBUG=True          #这里debug一定要大写

    #主要py文件引用上述文件(flask_test.py
    #encoding:utf-8 from flask import Flask import config          #引入上面创建的文件 app = Flask(__name__) app.config.from_object(config)    #app加载文件 @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(debug=True)

    url传参数

    #encoding:utf-8
    from flask import Flask
    
    app = Flask(__name__)
    
    #传递参数 @app.route('/p/<id>')          #参数需要放在“<>”中,并且要与函数中传入的参数同名 def p(id):                #加入参数,函数名称要与上面的路由名称相同 return '请求的参数 %s ' % id
    if __name__ == '__main__': app.run(debug=True)

    反转url

    反转url主要用于模版和页面的重定向(从视图函数到url的转换)

    #encoding:utf-8
    from flask import Flask,url_for            #导入url_for
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
    
        print (url_for("p",id='abc'))    #url_for模块使用,这里的的p和test为下面定义的函数名,但是要以字符串的方式写进去,并且如果函数有参数,这里也要写上
        print (url_for("test"))
        return 'Hello World!'
    
    @app.route('/p/<id>')
    def p(id):
        return '请求的参数 %s ' % id
    
    @app.route('/test1/')
    def test():
        return "反转url测试 test"
    
    if __name__ == '__main__':
        app.run(debug=True)

    打印结果:

    url跳转(重定向)及url反转功能应用

    #encoding:utf-8
    from flask import Flask,url_for,redirect              #导入redirect函数和url_for
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
    
        return '欢迎来到我的第一个flask首页'
    
    @app.route('/question/<is_login>')          #模拟是否登陆,传入参数is_login
    def p(is_login):
        if is_login == '1':                 #1为登陆成功,其他为失败,失败则跳转到登陆函数(下面的login)
            return "跳转到问答界面成功"
        else:
            return redirect(url_for('login'))      #失败,跳转到登陆函数(界面)
    
    @app.route('/login/')                  #登陆函数
    def login():
        return  "请登陆"
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    #入口url
    http://127.0.0.1:5000/question/1(参数)

     

    url跳转及静态文件引入(css文件)示例

    利用url_for 从index页面跳转到login页面,加载静态文件

     

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
      <link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">    #加载、static目录下的css目录下的index.css文件
      
    <script src="{{ url_for('static',filename='js/index.js') }}"></script>         #加载js文件
    <body>

      <div class="nav">
            <ul>
                <li><a href="{{ url_for('login') }}">登陆</a></li>    #点击登陆从index跳转到login页面
                <li><a href="#">发布问答</a></li>
            </ul>
    </div> {% block main %} {% endblock %}
      <img  src="{{ url_for('static',filename='images/aa.jpg') }}">      #加载image文件
    </body>
    </html>
  • 相关阅读:
    jQuery选择器支持正则匹配
    js监听dom元素内容变化
    icon
    arclist 分页
    dede 手机模板 上一篇下一篇 链接错误问题解决办法
    css解决移动端 文字垂直居中问题
    网页即时QQ聊天
    apache ,ip访问的默认页
    swiper初始化
    JQ锚点,平滑滚动
  • 原文地址:https://www.cnblogs.com/FRESHMANS/p/8419741.html
Copyright © 2011-2022 走看看