欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何從小白思維到編程思維轉變

錢琪琛2年前13瀏覽0評論

如何從小白思維到編程思維轉變?

首先思維的轉化,這是一個過程,其實編程思維不是一個獨立的體系,而是逐漸形成的,一個相對嚴謹的思維邏輯。

Python只是一種開發語言,既然是程序開發語言當然有他自己語法規則,掌握語法規則寫法是第一步。說開發思維其實就是讓一個功能無限分解到用代碼實現的一個反向思維邏輯。打個不恰當的栗子:我們去菜市場買菜是出門之后到菜市場看有什么菜,自己喜歡什么菜買回來就好。而編程思維是:最終實現目標是買什么菜、到哪買、怎么去、什么回來,等等一系列的動作組成的,軟件是一個比較精準的操作,你讓他買白菜他肯定不會給你買蘿卜。所謂的編程思維其實就是對功能的反向思維能力。

flask文件如何上傳

這是一個具體的代碼操作問題,其實思維邏輯跟其他語言是一樣。

文件上傳的基本概念實際上非常簡單, 他基本是這樣工作的:

一個 <form> 標簽被標記有 enctype=multipart/form-data ,并且在里面包含一個 <input type=file> 標簽。

服務端應用通過請求對象上的 files 字典訪問文件。

使用文件的 save() 方法將文件永久地保存在文件系統上的某處。

讓我們建立一個非常基礎的小應用,這個小應用可以上傳文件到一個指定的文件夾里, 然后將這個文件顯示給用戶。讓我們看看這個應用的基礎代碼:

import osfrom flask import Flask, request, redirect, url_forfrom werkzeug import secure_filenameUPLOAD_FOLDER = '/path/to/the/uploads'ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])app = Flask(__name__)app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

下一步,就是檢查文件類型是否有效、上傳通過檢查的文件、以及將用戶重定向到已經上傳好的文件 URL 處的函數了:

def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS@app.route('/', methods=['GET', 'POST'])def upload_file(): if request.method == 'POST': file = request.files['file'] if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) return redirect(url_for('uploaded_file', filename=filename)) return ''' <!doctype html> <title>Upload new File</title> <h1>Upload new File</h1> <form action="" method=post enctype=multipart/form-data> <p><input type=file name=file> <input type=submit value=Upload> </form> '''

那么 secure_filename() 函數具體做了那些事呢?現在的問題是,有一個信條叫做“永遠別相信你用戶的輸入” ,這句話對于上傳文件的文件名也是同樣有效的。所有提交的表單數據都可以偽造,而文件名本身也可能是危險的。在攝氏只需記住: 在將文件保存在文件系統之前,要堅持使用這個函數來確保文件名是安全的。

下面附帶一個完整的上傳文件代碼:

上面我們寫了一個上傳接口,我們為了測試這個接口是否工作正常,還得寫一個頁面(upload.html):