Flask(一):flask環境搭建+flask傳參+request請求+靜態文件

輕量級框架:flask web.py  tornado  開發靈活,開發效率低,真正的體現程序員的水平。

重量級框架:django,方便程序員開發,提供大量的功能組件(站點管理,csrf-token,富文本,緩存,日誌,ORM)

flask版本:1.1.1

flask提供了什麼:

  • flask只能夠完成最簡單的請求響應
  • jinjia2模板系統
  • werkzeug 工具箱(wsgi)
  • 插件

開始flask

1、創建虛擬環境

conda create -n FlaskPath python=3.5.2

啓動虛擬環境

activate FlaskPath

2、安裝flask

pip install flask == 1.1.1

3、使用flask

啓動

python hello.py

默認在5000的端口

4、Flak()參數

import_name:

  • flask程序所在的目錄,所在的包位置,傳__name__
  • 決定了flask靜態文件,模板文件的尋找地址

static_url_path

  • 靜態文件的訪問地址,可以不穿,默認爲 / +static_folder

template_folder

  • 模板文件的存儲位置,可以不穿,默認爲templates

5、路由

flask中的路由跟django中的路由有區別

django中使用路由: urls.py    path("//",視圖)

flask路由  使用裝飾器 

@app.route("/index/")

def index():

寫路由 需要注意:

  1. url應該以/ 開頭
  2. url寫法 標準的是 /  /

      3. 視圖函數不能重名

      4. 習慣:將視圖函數的名字命名爲 路由的名字

路由傳參

轉換器語法

<>叫轉換器語法,默認爲string類型

  • 路由中使用了<user name>
  • 視圖中增加參數 username

類型:

string  默認類型

int  整型

float 浮點型

path:包含斜槓的路徑,通常用於路徑的拼接

http://timgsa.baidu.com/timg?src=http://xxxxx.nipic.com

http://timgsa.baidu.com/timg/http://xxxx.nipc.com

 

uuid:通用唯一識別碼

 

請求

django:

request.method

request.GET.get()

request.POST.get()

flask get請求

默認支持get請求

獲取get請求的參數

 

post請求

flask默認不支持post請求

解決:增加請求方式

獲取post請求參數

request

  • from flask import request
  • 請求上下文
  • args 獲取get請求的參數
  • form 獲取post請求的參數
  • cookies 獲取cookie
  • method  獲取請求方式 POST GET
  • url  獲取請求url地址
  •  file 獲取請求上傳的文件
  • headers 請求報文的頭

靜態文件

django  配置settings中增加 static目錄位置

flask中使用靜態文件

在flask啓動文件的同目錄創建static目錄,可以通過修改Flaks參數修改static目錄

 

模板

在腳本文件統計目錄創建templates目錄,可以通過修改flask參數改變模板文件的目錄

flask使用的是jinjia2的模板系統

  • 調用靜態模板  : render_template("html")
  • 傳遞數據
  • 變量的傳遞

變量傳遞的第二種方法

第三種方法

模板語法

<h1>我是  index </h1>
<h2>變量的使用</h2>
{{ name }}
{{age}}
<hr>
<h2> </h2>
{{name.upper()}}
{{name.replace("e","xxxx")}}
<hr>
{{name.1}}
{{name + "好水"}}
{{name.split("l")}}

<h2>jinja2循環</h2>
    {% for one in name %}
        {{one}}<br>
    {% endfor%}
<h2>jinja2判斷</h2>
    {% if name == "hello"%}
        {{name}}
    {% else %}
        <span>沒有名字</span>
    {% endif %}


{{ mydict.get("yuwen") }}

{% for key,value in mydict.items() %}
    {{key}}:{{value}}
{% endfor %}

模板繼承

base.html

{% block title %} {%endblock%}

子頁面

{% extends "base.html"%}

{% block title %} 子頁面{%endblock%}

 

base頁面 提取公共部分 ,修改靜態文件位置,增加block

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章