由於專案需要,需要學習python flask web開發,下面是學習的記錄(參考部落格)
首先在pycharm中安裝flask包,然後新建乙個py檔案,檔案中插入以下**,進行測試:
然後執行程式,會出現from flask import flask
def hello_world():
return 'hello world!'
if __name__ == '__main__':
* running on (press ctrl+c to quit)在瀏覽器開啟上面**,會出現「hello world」字樣,表示flask包呼叫成功。
def hello_world():
return 'hello world!'
當客戶端訪問/
時,將響應hello_world()
函式返回的內容。注意,這裡返回的是http報文,hello world!
只是http響應報文的實體部分,狀態碼等資訊既可以由flask自動處理,也可以通過程式設計來制定。
這局**為了程式命名__name__在python 中預設為字串「__main__」
完整的使用方法如下:path1存放靜態資源,path2存放模板。
0.0.0.0
代表電腦所有的ip。80
是http**服務的預設埠。什麼是預設?比如,我們訪問**,其實是訪問的
:80
,只不過:80
可以省略不寫。由於繫結了80埠,需要使用root許可權執行server.py
。
列出所有的url引數,輸入一下**:
在電腦瀏覽器中執行** ?user=flask&time&p=7&p=8from flask import flask, request
def hello_world():
return request.args.__str__()
if __name__ == '__main__':
會出現一下結果
瀏覽器傳給我們的flask服務的資料長什麼樣子呢?可以通過request.full_path和request.path
來看一下:
檢視post中的資料,以使用者註冊為例子,我們需要向伺服器/register傳送使用者名稱from flask import flask, request
def hello_world():
print(request.path)
print(request.full_path)
return request.args.__str__()
if __name__ == '__main__':
name
和密碼password
。**如下編寫
執行成功以後,我們可以從之前的執行結果看到一下結果:from flask import flask, request
def hello_world():
return 'hello world'
def register():
print(request.headers)
print(request.stream.read())
return 'welcome'
if __name__ == '__main__':
host: 127.0.0.1:5000接下來解析post中的資料,其中 b'name=letian&password=123' 我們從中提取出name 和password,可以使用python中的request.form,例項**如下:user-agent: python-requests/2.25.1
accept-encoding: gzip, deflate
accept: */*
connection: keep-alive
content-length: 24
b'name=letian&password=123'
可以在flask檔案**現一下資料:from flask import flask, request
def hello_world():
return 'hello world'
def register():
print(request.headers)
# print(request.stream.read()) # 不要用,否則下面的form取不到資料
print(request.form)
print(request.form['name'])
print(request.form.get('name'))
print(request.form.getlist('name'))
return 'welcome'
if __name__ == '__main__':
immutablemultidict([('name', 'letian'), ('password', '123')])request.form會自動解析資料。letian
letian
['letian']
request.form['name']
和request.form.get('name')
都可以獲取name
對應的值。對於request.form.get()
可以為引數default
指定值以作為預設值。
使用 http post 方法傳到**伺服器的資料格式可以有很多種。我們也可以用json格式、xml格式。相比xml的重量、規範繁瑣,json顯得非常小巧和易用。如果post的資料是json格式,request.json
會自動將json資料轉換成python型別(字典或者列表)。**如下:
附python檔案**如下:from flask import flask, request
def hello_world():
return 'hello world!'
def add():
print(request.headers)
print(type(request.json))
print(request.json)
result = request.json['a'] + request.json['b']
return str(result)
if __name__ == '__main__':
import requests執行結果如下:json_data =
r = requests.post("add", json=json_data)
print(r.text)
host: 127.0.0.1:5000
user-agent: python-requests/2.19.1
accept-encoding: gzip, deflate
accept: */*
connection: keep-alive
content-length: 16
python Flask Web開發入門(一)
原文 1.如何用pip安裝python包 demo 如何安裝flask 2.乙個簡單的demo 大多數python包都使用pip實用工具安裝,使用pyvenv建立的虛擬環境會自動安裝pip。1.使用pip安裝flask 其它python包同理 if name main 從demo中學習路由 修飾器 ...
python flaskweb學習筆記二
在 orm 中,模型一般是乙個 python 類,類中的屬性對應資料庫表中的列。最常用的sqlalchemy列型別 型別名 python型別 說 明 integer int普通整數,一般是 32 位 smallinteger int取值範圍小的整數,一般是 16 位 biginteger int 或...
Python Flask WEB框架的入門方法
encoding utf 8 from flask import flask from flask import render template from flask import jsonify from flask import request from flask import make re...