python flask
藍圖Blueprint
什么是藍圖?
藍圖:用于實現單個應用的視圖、模板、靜態文件的集合。
藍圖就是模塊化處理的類。
簡單來說,藍圖就是一個存儲操作路由映射方法的容器,主要用來實現客戶端請求和URL相互關聯的功能。 在Flask中,使用藍圖可以幫助我們實現模塊化應用的功能。
藍圖的使用:
一、創建藍圖對象。
#Blueprint必須指定兩個參數,admin表示藍圖的名稱,__name__表示藍圖所在模塊 admin = Blueprint('admin',__name__)二、注冊藍圖路由。
@admin.route('/') def admin_index():return 'admin_index'三、在程序實例中注冊該藍圖。
#url_prefix是指在定義視圖函數url前面加上/admin才能訪問該視圖函數 app.register_blueprint(admin,url_prefix='/admin')SQLAlchemy
db.session api 接口地址:
https://docs.sqlalchemy.org/en/13/orm/session_api.html
?
SQLAlchemy是一個基于Python實現的ORM框架。該框架建立在 DB API之上,使用關系對象映射進行數據庫操作,簡言之便是:將類和對象轉換成SQL,然后使用數據API執行SQL并獲取執行結果
Engine,框架的引擎
Connection Pooling ,數據庫連接池 Dialect,選擇連接數據庫的DB API種類
Schema/Types,架構和類型
SQL Exprression Language,SQL表達式語言
ORM技術:Object-Relational Mapping,把關系數據庫的表結構映射到對象上。
create_engine()用來初始化數據庫連接。SQLAlchemy用一個字符串表示連接信息:
'數據庫類型+數據庫驅動名稱://用戶名:口令@機器地址:端口號/數據庫名'FLASK --DB-COLUMN屬性
db.Column 中其余的參數指定屬性的配置選項。
| primary_key | 如果設為 True,這列就是表的主鍵 |
| unique | 如果設為 True,這列不允許出現重復的值 |
| index | 如果設為 True,為這列創建索引,提升查詢效率 |
| nullable | 如果設為 True,這列允許使用空值;如果設為 False,這列不允許使用空值 |
| default | 為這列定義默認值 |
?
flask_SQLAlchemy擴展包:封裝了對數據庫的操作,離開了這個擴展包,就不會碰見session
?
flask-sqlalchemy filter 和 filter_by 的區別
filter用類名.屬性名,比較用==,filter_by直接用屬性名,比較用= 不過這個是語法小細節。
個人覺得最重要的區別是filter不支持組合查詢,只能連續調用filter來變相實現。
而filter_by的參數是**kwargs,直接支持組合查詢。
?
filter和filter_by查詢:都是查詢過濾器,要使用查詢執行器;
User.query.filter(User.name=='wang').all() 參數:必須使用類名.字段,可以使用運算符>= == <= !=
User.query.filter_by(name='wang').all()參數:只需要使用字段名,不能使用運算符。
?
- filter_by()方法,對查詢結果過濾,參數必須是鍵值對”key=value”
?
- filter()方法,對查詢結果過濾,比filter_by()方法更強大,參數是布爾表達式
多個查詢條件用逗號分割。
first()方法,取返回列表中的第一個元素,當我們只查詢一條記錄時非常有用
user = User.query.filter_by(name='Michael').first()- order_by()方法,排序
?
?
?
request模塊
?1、method:請求的方法,
return request.method #POST
2、form:返回form的內容
return json.dumps(request.form) #返回值:{"username": "123", "password": "1234"}
3、args和values:args返回請求中的參數,values返回請求中的參數和form
return json.dumps(request.args) # 返回值:{"a": "1", "b": "2"}
return str(request.values) #返回值:CombinedMultiDict([ImmutableMultiDict([('a', '1'), ('b', '2')]), ImmutableMultiDict([('username', '123'), ('password', '1234')])])
4、cookies:cookies信息
return json.dumps(request.cookies) #cookies信息
5、headers:請求headers信息,返回的結果是個list
return str(request.headers) #headers信息
request.headers.get('User-Agent') #獲取User-Agent信息
6、url、path、script_root、base_url、url_root:看結果比較直觀
return 'url: %s' %request.url 返回值:url: http://192.168.1.183:5000/testrequest?a&b
return 'script_root: %s' %request.script_root 返回值:script_root: ,
return 'path: %s' %request.path 返回值:path: /testrequest
return 'base_url: %s' %request.base_url 返回值:base_url: http://192.168.1.183:5000/testrequest
return 'url_root : %s' %request.url_root 返回值:url_root : http://192.168.1.183:5000/
7、date、files:date是請求的數據,files隨請求上傳的文件
總結
以上是生活随笔為你收集整理的python flask的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: debian9 配置ssh 允许 roo
- 下一篇: python 字典字符串转字典——url