Hướng dẫn python flask mysql - bình trăn mysql

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Dai Phong (you can also view the original English article)

Trong loạt bài này, chúng ta sẽ sử dụng Python, Flask và MySQL để tạo ra một ứng dụng web đơn giản từ đầu. Nó sẽ là một ứng dụng danh sách điều ước đơn giản, nơi người dùng có thể đăng ký, đăng nhập và tạo danh sách điều ước của họ.

Hướng dẫn này giả định rằng bạn có một số kiến thức cơ bản về ngôn ngữ lập trình

if __name__ == "__main__":
    app.run()
4. Chúng ta sẽ sử dụng
if __name__ == "__main__":
    app.run()
5, một framework Python cho ứng dụng web, để tạo ra ứng dụng của chúng ta, với
if __name__ == "__main__":
    app.run()
6 là back-end.

Giới thiệu Python Flask

Flask là một framework Python để tạo các ứng dụng web. Theo trang web chính thức,

Flask là một microframework cho Python dựa trên Werkzeug, Jinja 2 và các ý tưởng tốt.

Khi chúng ta nghĩ về Python, theo thói quen, framework thật sự mà chúng ta nghĩ đến là framework Django. Nhưng từ góc độ của người mới bắt đầu đến với Python, Flask dễ dàng để làm quen hơn, so với Django.

Thiết lập Flask

Thiết lập Flask là khá đơn giản và nhanh chóng. Với trình quản lí gói

if __name__ == "__main__":
    app.run()
7, tất cả những gì chúng ta cần làm là:

pip install flask

Một khi bạn hoàn tất cài đặt Flask, hãy tạo một thư mục được gọi là

if __name__ == "__main__":
    app.run()
8. Điều hướng đến thư mục
if __name__ == "__main__":
    app.run()
8 và tạo một tập tin gọi là
python app.py
0. Nhập mô-đun
python app.py
1 và tạo ra một ứng dụng bằng cách sử dụng Flask như ở dưới đây:

from flask import Flask
app = Flask(__name__)

Bây giờ xác định tuyến (route) cơ bản

python app.py
2 và trình điều khiển (handler) yêu cầu tương ứng của nó:

@app.route("/")
def main():
    return "Welcome!"

Tiếp theo, kiểm tra xem tập tin thực thi có là chương trình chính hay không và chạy ứng dụng:

if __name__ == "__main__":
    app.run()

Lưu các thay đổi và thực thi

python app.py
0:

python app.py

Trỏ trình duyệt của bạn đến http://localhost:5000/ và bạn sẽ thấy thông điệp chào mừng.

Tạo một Trang chủ

Đầu tiên, khi ứng dụng chạy chúng ta nên hiển thị một trang chủ với các phần tử trong danh sách mong ước mới nhất được thêm vào bởi người dùng. Vì vậy, hãy thêm trang chủ của chúng ta vào thư mục application.

Flask tìm kiếm các tập tin template bên trong thư mục

python app.py
4. Do đó, hãy tìm đến thư mục
python app.py
5 và tạo một thư mục gọi là
python app.py
4. Bên trong
python app.py
4, tạo một tập tin gọi là
python app.py
8. Mở
python app.py
8 và thêm code HTML sau đây:





    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

Mở

python app.py
0 và import




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

1, cái mà chúng ta sẽ sử dụng để kết xuất các tập tin template.

from flask import Flask, render_template

Sửa đổi phương thức chính để trả về tập tin template đã được kết xuất.

def main():
    return render_template('index.html')

Lưu các thay đổi và khởi động lại máy chủ. Trỏ trình duyệt của bạn đến http://localhost:5000/ và bạn sẽ thấy màn hình dưới đây:

Hướng dẫn python flask mysql - bình trăn mysql
Hướng dẫn python flask mysql - bình trăn mysql
Hướng dẫn python flask mysql - bình trăn mysql

Tạo một Trang đăng ký

Bước 1: Thiết lập Cơ sở Dữ liệu

Chúng ta sẽ sử dụng

if __name__ == "__main__":
    app.run()
6 làm back-end. Do đó hãy đăng nhập vào MySQL từ dòng lệnh, hoặc nếu bạn thích một giao diện như MySQL Work Bench, bạn cũng có thể sử dụng nó. Đầu tiên, tạo một cơ sở dữ liệu được gọi là




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

3. Từ giao diện dòng lệnh:

mysql -u  -p

Nhập mật khẩu cần thiết và khi đã đăng nhập, thực thi lệnh sau để tạo ra cơ sở dữ liệu:

CREATE DATABASE BucketList;

Một khi cơ sở dữ liệu đã được tạo ra, tạo ra một bảng gọi là





    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

4 như dưới đây:

from flask import Flask
app = Flask(__name__)
0

Chúng ta sẽ sử dụng các





    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

5 để cho ứng dụng Python tương tác với cơ sở dữ liệu MySQL. Vì vậy, một khi bảng




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

4 đã được tạo ra, hãy tạo ra một thủ tục được lưu trữ được gọi là




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

7 để đăng ký một người dùng.

Khi tạo một thủ tục lưu trữ để tạo người dùng trong bảng





    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

4, trước tiên chúng ta cần kiểm tra xem người dùng với




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

9 đã tồn tại hay chưa. Nếu nó đã tồn tại chúng ta cần phải đưa ra một lỗi cho người dùng, nếu không chúng ta sẽ tạo người dùng trong bảng người dùng. Thủ tục lưu trữ




    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

7 sẽ trông giống như sau:

from flask import Flask
app = Flask(__name__)
1

Bước 2: Tạo một Giao diện Đăng ký

Điều hướng đến thư mục

from flask import Flask, render_template
1 và tạo ra một tập tin HTML được gọi là
from flask import Flask, render_template
2. Thêm code HTML sau đây vào
from flask import Flask, render_template
2:

from flask import Flask
app = Flask(__name__)
2

Đồng thời thêm

from flask import Flask, render_template
4 sau đây như là
from flask import Flask, render_template
5 vào thư mục static bên trong
python app.py
5.

from flask import Flask
app = Flask(__name__)
3

Trong

python app.py
0 thêm một phương thức được gọi là
from flask import Flask, render_template
8 để kết xuất trang đăng ký một khi một yêu cầu gởi đến
from flask import Flask, render_template
9:

from flask import Flask
app = Flask(__name__)
4

Lưu các thay đổi và khởi động lại máy chủ. Bấm vào nút Sign Up trên trang chủ và bạn sẽ có trang đăng ký như dưới đây: Sign Up trên trang chủ và bạn sẽ có trang đăng ký như dưới đây:

Hướng dẫn python flask mysql - bình trăn mysql
Hướng dẫn python flask mysql - bình trăn mysql
Hướng dẫn python flask mysql - bình trăn mysql

Bước 3: Cài đặt một Phương thức Đăng ký

Tiếp theo, chúng ta cần một phương thức bên phía máy chủ để cho giao diện người dùng tương tác với cơ sở dữ liệu MySQL. Vì vậy, hãy chuyển đến

python app.py
5 và mở
python app.py
0. Tạo ra một phương thức mới gọi là
def main():
    return render_template('index.html')
2 và đồng thời thêm một tuyến
def main():
    return render_template('index.html')
3. Nó sẽ trông giống như dưới đây:

from flask import Flask
app = Flask(__name__)
5

Chúng ta sẽ sử dụng jQuery AJAX để gửi dữ liệu đăng ký của phương thức

def main():
    return render_template('index.html')
2, do đó chúng ta sẽ chỉ định phương thức trong định nghĩa tuyến (route).

from flask import Flask
app = Flask(__name__)
6

Để đọc các giá trị gởi đi chúng ta cần import

def main():
    return render_template('index.html')
5 từ Flask.

from flask import Flask
app = Flask(__name__)
7

Sử dụng

def main():
    return render_template('index.html')
5 chúng ta có thể đọc các giá trị được gởi như dưới đây:

from flask import Flask
app = Flask(__name__)
8

Sau khi các giá trị đã được đọc, chúng ta sẽ chỉ cần kiểm tra xem chúng có hợp lệ hay không và lúc này chỉ cần trả về một thông điệp đơn giản:

from flask import Flask
app = Flask(__name__)
9

Đồng thời import

def main():
    return render_template('index.html')
7 từ Flask, vì chúng ta đang sử dụng nó trong code ở trên để trả về dữ liệu
def main():
    return render_template('index.html')
7.

@app.route("/")
def main():
    return "Welcome!"
0

Bước 4: Tạo một Yêu cầu Đăng ký

Chúng ta sẽ sử dụng jQuery AJAX để gửi yêu cầu đăng ký đến phương thức của Python. Tải về và đặt

def main():
    return render_template('index.html')
9 bên trong
mysql -u  -p
0 và thêm một liên kết đến nó từ trang đăng ký. Một khi jQuery đã được thêm vào, chúng ta sẽ thêm một yêu cầu POST
def main():
    return render_template('index.html')
9 khi người dùng nhấp vào nút
mysql -u  -p
2.

Vì vậy, hãy gắn sự kiện click vào nút Sign Up như sau:

@app.route("/")
def main():
    return "Welcome!"
1

Lưu tất cả các thay đổi và khởi động lại máy chủ. Từ trang Sign Up, điền các chi tiết và nhấp vào Sign Up. Kiểm tra giao diện console của trình duyệt và bạn sẽ có được thông điệp sau đây:Sign Up, điền các chi tiết và nhấp vào Sign Up. Kiểm tra giao diện console của trình duyệt và bạn sẽ có được thông điệp sau đây:

@app.route("/")
def main():
    return "Welcome!"
2

Bước 5: Gọi Thủ tục Lưu trữ của MySQL

Một khi chúng ta có

mysql -u  -p
3,
mysql -u  -p
4 và
mysql -u  -p
5, chúng ta chỉ cần gọi thủ tục lưu trữ của MySQL để tạo người dùng mới.

Để kết nối với MySQL, chúng ta sẽ sử dụng Flask-MySQL, nó là một extension (chức năng mở rộng) của Flask. Để bắt đầu với

mysql -u  -p
6, hãy cài đặt nó bằng cách sử dụng trình quản lý gói
if __name__ == "__main__":
    app.run()
7:

@app.route("/")
def main():
    return "Welcome!"
3

Import MySQL bên trong

python app.py
0:

@app.route("/")
def main():
    return "Welcome!"
4

Trước đó, chúng ta đã định nghĩa ứng dụng của chúng ta như sau:

@app.route("/")
def main():
    return "Welcome!"
5

Cùng với đó hãy bao gồm các cấu hình MySQL sau đây:

@app.route("/")
def main():
    return "Welcome!"
6

Trước tiên, hãy tạo kết nối MySQL:

@app.route("/")
def main():
    return "Welcome!"
7

Sau khi kết nối được tạo ra, chúng ta sẽ yêu cầu một

mysql -u  -p
9 để truy vấn thủ tục được lưu trữ của chúng ta. Do đó, sử dụng kết nối
CREATE DATABASE BucketList;
0, tạo ra một cursor.

@app.route("/")
def main():
    return "Welcome!"
8

Trước khi gọi thủ tục lưu trữ, hãy làm cho mật khẩu của chúng ta an toàn bằng cách sử dụng một helper được cung cấp bởi Werkzeug. Import mô-đun vào

python app.py
0:

@app.route("/")
def main():
    return "Welcome!"
9

Sử dụng mô-đun salting để tạo mật khẩu băm.

if __name__ == "__main__":
    app.run()
0

Bây giờ, hãy gọi thủ tục





    Python Flask Bucket List App


    

    






    

Python Flask App

Bucket List App

Sign up today

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

Bucket List

Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.

Bucket List

Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.

Bucket List

Maecenas sed diam eget risus varius blandit sit amet non magna.

© Company 2015

7:

if __name__ == "__main__":
    app.run()
1

Nếu thủ tục được thực thi thành công, thì chúng ta sẽ áp dụng các thay đổi và trả về thông điệp thành công.

if __name__ == "__main__":
    app.run()
2

Lưu các thay đổi và khởi động lại máy chủ. Đi đến trang đăng ký và nhập

mysql -u  -p
3,
mysql -u  -p
4 và
CREATE DATABASE BucketList;
5 và nhấp vào nút Sign Up. Khi tạo thành công người dùng, bạn sẽ có thể thấy một thông báo trong giao diện console của trình duyệt.Sign Up. Khi tạo thành công người dùng, bạn sẽ có thể thấy một thông báo trong giao diện console của trình duyệt.

if __name__ == "__main__":
    app.run()
3

Tóm tắt

Trong hướng dẫn này, chúng ta đã được làm quen với việc tạo ra một ứng dụng web bằng

CREATE DATABASE BucketList;
6,
if __name__ == "__main__":
    app.run()
6 và extension
mysql -u  -p
6. Chúng ta tạo ra và thiết kế các bảng cơ sở dữ liệu và thủ tục lưu trữ, và cài đặt chức năng đăng ký. Trong hướng dẫn tiếp theo, chúng ta sẽ chuyển loạt bài này lên cấp độ tiếp theo bằng cách cài đặt chức năng đăng nhập và một số tính năng khác.

Mã nguồn từ hướng dẫn này có sẵn trên GitHub.

Hãy cho chúng tôi biết những suy nghĩ của bạn trong phần bình luận dưới đây nhé!