Cách Triển Khai Ứng Dụng Wsgi Python Bằng Web Server Uwsgi Là Gì,

.├── backend│ ├── app│ │ ├── app│ │ │ ├── cors.py│ │ │ ├── __init__.py│ │ │ ├── main.py│ │ │ └── test│ │ │ ├── __init__.py│ │ │ └── test_hello.py│ │ ├── backend-live.sh│ │ └── uwsgi.ini│ └── Dockerfile├── db│ └── init.sql├── docker-compose.yml├── frontend│ ├── babel.config.js│ ├── Dockerfile│ ├── package.json│ ├── package-lock.json│ ├── public│ │ ├── favicon.ico│ │ └── index.html│ ├── README.md│ └── src│ ├── App.vue│ ├── assets│ │ └── logo.png│ ├── components│ │ └── HelloWorld.vue│ ├── config.js│ └── main.js├── README.md└── traefik ├── acme │ └── acme.json └── traefik.tomlỞ nội dung bài viết này họ tập trung vào phần backend sẽ là flask của họ ở đó.

.├── backend│ ├── app│ │ ├── app│ │ │ ├── cors.py│ │ │ ├── __init__.py│ │ │ ├── main.py│ │ │ └── test│ │ │ ├── __init__.py│ │ │ └── test_hello.py│ │ ├── backend-live.sh│ │ └── uwsgi.ini│ └── Dockerfile..Có phần test mẫu cơ thì bản thân sẽ bỏ qua mất vì bạn thích xây dựng docker flask cấp tốc nhất có thể mà.

Xây dựng env ảo hóa môi trường để chạy được flask

Các chúng ta có thể tham khảo: https://www.geeksforgeeks.org/python-virtual-environment/

Installing virtualenv

$ pip install virtualenvUsing virtualenv

$ virtualenv -p /usr/bin/python3 flask-vuejsActivate

$ source flask-vuejs/bin/activate

Xây dựng Flask

Cài để môi trường

chúng ta tạo ra 1 file đâu đó requirements.txt với nội dung như sau:

Click==7.0Flask==1.1.1Flask-Cors==3.0.8itsdangerous==1.1.0Jinja2==2.10.1MarkupSafe==1.1.1six==1.12.0uWSGI==2.0.18Werkzeug==0.15.5$ (flask-vuejs) pip install -r requirements.txtĐó là cài những thư viện tương quan đến flask mà chúng ta cần

Trong file main.py chúng ta định nghĩa như sau:

# Import installed packagesfrom flask import Flask, jsonify# Import app codeapp = Flask(__name__)# After creating the app, so that cors can import itfrom app import cors
app.route("/api/")def root(): return jsonify("message": "Hello World")if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=80)Ở trên đây chỉ là tạo nên api đơn giản hello world

Trong file cors.py chúng ta có nội dung sau:

import osfrom flask_cors import CORSfrom app.main import appcors = CORS(app, resources=r"/api/*": "origins": "*")origins = <>Để hiểu hơn cors, các chúng ta có thể tham khảo Cors là gì ?

tại thư mục ./backend/app vẫn ở môi trường xung quanh flask-vuejs chạy từng dòng lệnh sau đây:

export FLASK_APP=app/main.pyexport FLASK_DEBUG=1flask runChúng ta đã bao gồm log thứ như sau:

* Serving Flask app "app/main.py" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment.

Xem thêm: Ung Thư Khẩu Cái - Chuẩn Đoán Và Điều Trị Cho Cứng

Use a production WSGI vps instead. * Debug mode: on * Running on http://127.0.0.1:5000/ (Press CTRL+C lớn quit) * Restarting with stat * Debugger is active! * Debugger PIN: 118-646-739127.0.0.1 - - <23/Sep/2019 14:58:17> "GET /api HTTP/1.1" 308 -127.0.0.1 - - <23/Sep/2019 14:58:17> "GET /api/ HTTP/1.1" 200 -127.0.0.1 - - <23/Sep/2019 14:58:18> "GET /favicon.ico HTTP/1.1" 404 -Test test http://localhost:5000/api/

*

chúng ta đang gói gọn nạm vì thực hiện export từng dòng:

Trong file backend-live.sh

#! /usr/bin/env bashexport FLASK_APP=app/main.pyexport FLASK_DEBUG=1flask runThế là ngừng backend, tuy vậy đến bước này chợt nhận thấy có nào đấy sai sai. Nội dung bài viết của chúng ta liên quan cho docker hóa mẫu flask này mà lại nhỉ

*

Cấu hình docker-compose.yml

version: "3.7"services: backend: build: ./backendCác bạn chỉ cần chạy lệnh

docker-compose up -dchúng ta demo gõ http://localhost/api/ là ra công dụng mình cần

Kết luận

Trên đó là 1 dạng setup docker dễ dàng và đơn giản cho flask là backend bao gồm api endpoint /api/, bên cạnh đó các chúng ta có thể sử dụng tương tự như với django chẳng hạn.Bài viết tiếp theo sau sẽ thiết lập thêm 1 framework frontend như Vuejs với endpoint là / là giao diện thao tác