VIẾT MỘT ỨNG DỤNG DÙNG FRAMEWORK FLASK VỚI DATABASE LÀ MONGO.
Trong bài viết này bạn học được cách tạo một ứng dụng sử dụng framework flask với cơ sở dữ liệu là mongodb.
Các phần mềm cần thiết :
- docker (1.6.0 or above)
- docker-compose (1.3.1+)
- python 2.7 or above
- Linux VM - (We used ubuntu 14.04 64 bit)
Cấu trúc của một flask app như sau:
├── app.py ├── docker-compose.yml ├── Dockerfile ├── README.md ├── requirements.txt └── templates └── todo.html
Tạo một thư mực cha:
Tạo một thư mục cha có tên :
flask_mongo_compose_sample
Tạo một file app.py có nội dung sau :$ mkdir flask_compose_sample $ cd flask_compose_sample
import os from flask import Flask, redirect, url_for, request, render_template from pymongo import MongoClient app = Flask(__name__) client = MongoClient( os.environ['DB_PORT_27017_TCP_ADDR'], 27017) db = client.tododb @app.route('/') def todo(): _items = db.tododb.find() items = [item for item in _items] return render_template('todo.html', items=items) @app.route('/new', methods=['POST']) def new(): item_doc = { 'name': request.form['name'], 'description': request.form['description'] } db.tododb.insert_one(item_doc) return redirect(url_for('todo')) if __name__ == "__main__": app.run(host='0.0.0.0', debug=True)
Tạo một template file:
File todo.html có nội dung sau và nó dùng ninia template để render, file này nằm ở trong folder template :
<form action="/new" method="POST"> <input type="text" name="name"></input> <input type="text" name="description"></input> <input type="submit"></input> </form> {% for item in items %} <h1> {{ item.name }} </h1> <p> {{ item.description }} <p> {% endfor %}
Tạo file requrements.txt có nôi dung sau;
requirements.txt
Có 2 module cần cài :
flask pymongo
Tạo một dockerfile :
FROM python:2.7 ADD . /todo WORKDIR /todo RUN pip install -r requirements.txt
Tạo một
docker-compose.yml
trong thư mục cha,web: build: . command: python -u app.py ports: - "5000:5000" volumes: - .:/todo links: - db db: image: mongo:3.0.2
Sau đó ta có thể chạy ứng dụng được rồi.
$ docker-compose build $ docker-compose up
Bây giờ bạn có thể truy cập http://localhost:5000 trên trình duyệt của bạn và thấy nội dung được in ra.
Nhận xét
Đăng nhận xét