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基础篇(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《长相思·九月西风兴》第七句是什么
- 下一篇: UVALive2678:Subseque