日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python框架之Flask基础篇(一)

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python框架之Flask基础篇(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.第一個hello world程序

# coding=utf-8
from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(debug=True)

1.app參數的設置:

?以下幾種方式全部拿debug模式舉例:
.方式一:將參數設置到app.config字典中:

app.config["DEBUG"] = True

.方式二:加載文件:??
  1.?先在根目錄下創建一個config.py文件,然后寫入DEBUG = True?
  2.?然后在含有app文件中設置參數:

?

app.config.from_pyfile("config.py")

.方式三:加載對象(實際開發中一般用這個):??
  1.?先在根目錄下創建一個config.py文件,然后寫入如下代碼:

class Config(object):DEBUG = True

  2.?在app文件中導入config文件中的Config類。??
  3.?然后設置:

app.config.from_object("Config")

.方式四:app的屬性

app.debug = True

?

也可以 

app.run(debug=True)

但是這種方式不同用,只是針對debug模式可以這樣設置。 

2.取app.config參數中的值:

 1)app.config.get("DEBUG")

? ?2)current_app.config.get("DEBUG")

? ?3)Config.DEBUG

?

二.路由的各種定義方式

1.路由的查找方式:

2.flask中內置的路由轉換器(路由傳參的幾種形式)

?

?a.系統默認的類型default就是string類型,也就是說進行路由的參數匹配的時候,系統默認會將參數當作string類型進行匹配。下面舉例說明:

?

 1 @app.route('/<str>')
 2 def print_str(str):
 3     print type(str)    # 結果為:<type 'unicode'>
 4     return str
 5 
 6 
 7 @app.route('/<string:str>')
 8 def print_str1(str):
 9     print type(str)    # 結果為:<type 'unicode'>
10   return str

?

?

?

?

 1 @app.route('/<any(hello,python,java,"javascript:;"):str>')
 2 def print_any(str):   # 只能匹配括號里面的數據,并且引號里面的數據可以隨意寫
 3     print type(str)
 4     return str
 5 
 6 
 7 @app.route('/<path:str>')     # http://localhost:5000/path/str
 8 def print_path(str):
 9     print type(str)
10     return str    # 結果為:path/str
11 
12 
13 @app.route('/<int:str>')    # 頁面傳過來的數據(字符串類型)在這里直接轉換為int類型
14 def print_int(str):
15     print type(str)    # <type 'int'>
16     return str(str)     # 此時將數據返回給頁面的時候必須轉換為字符串類型
17 
18 @app.route('/<float:str>')  # 只有當頁面傳遞過來的是小數float轉換器才起作用
19 def print_float1(str):
20     print type(str)    # <type 'float'>
21     return str(str)

?

?

?

b. ? ? uuid是32位16進制的數字。

3.路由的重定向

  1)重定向的方法是redirect()常常和url_for一起使用。比如:redirect(url_for(“視圖函數的方法名”))

4.返回Json數據的兩種方法:

  1)json.dumps("字典")

  2)jsonify("字典")

第一種方法僅僅是將字典轉換為字符串返回給頁面,響應頭的Content-Type為text/html。

第二種方法是將字典轉換為json返回給頁面,響應頭的Content-Type為application/json。這是開發中比較常用的方法。

現在的需求是用第一種方法還要達到第二種方法的效果,代碼為:

return json.dumps(“字典”), 200, {'Content-Type': 'application/json'}

?

5.自定義正則路由轉換器

  1)導入包

from werkzeug.routing import BaseConverter

  2)仿照BaseConverter自定義一個類

class RegexConverter(BaseConverter):def __init__(self,url_map,*args):super(RegexConverter,self).__init__(url_map)self.regex = args[0]

  3)將自定義的類添加到路由轉換器的字典中

app.url_map.converters["re"] = RegexConverter  # 這句話相當于將自己定義的類用re來表示

  4)將正則路由轉換器應用到實例中

?

@app.route('/<re(r"\d{2}"):str>')  # 只能匹配兩位數字  re(“正則”) ===>  相當于執行了RegexConverter中的init方法,將正則賦值給self.regex
def print_str(str):return str

?

轉載于:https://www.cnblogs.com/RomanticLife/p/8362022.html

總結

以上是生活随笔為你收集整理的python框架之Flask基础篇(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。