Cara menggunakan python mongo find_one

pengantar

Kami akan membuat aplikasi web Python sederhana menggunakan kerangka Flask dan MongoDB. Sangat mudah untuk bekerja dengan Flask serta MongoDB.


Anda dapat memilih pilihan instalasi yang disesuaikan untuk menambahkan variabel lingkungan Python. Jika Anda memilih instalasi default, atur variabel ini secara manual.

Cara menggunakan python mongo find_one


Silakan klik opsi Tambahkan Python 3.7 ke PATH. Ini akan menambahkan satu entri dalam variabel lingkungan.

Cara menggunakan python mongo find_one


Jika perlu, Anda dapat mengubah jalur instalasi. Silakan periksa variabel lingkungan Python.

Setelah instalasi berhasil, jika Anda memeriksa variabel lingkungan sistem, Anda dapat melihat dua entri di bawah ini ditambahkan dalam sistem.

Cara menggunakan python mongo find_one

Kami menginstal versi Python 3.7, sehingga ditambahkan sebagai Python 37-32.

Folder Scripts digunakan untuk menangani paket tambahan yang diperlukan untuk Python.

Sekarang Anda dapat memeriksa versi Python dan PIP di command prompt. PIP adalah singkatan dari Python package index yang digunakan untuk menginstal, mengupgrade atau menghapus library Python tambahan dari sistem kami.

python --version dan pip – versi

Cara menggunakan python mongo find_one

Secara default, versi pip mungkin bukan 18. Ini adalah versi terbaru hari ini. Jika versi pip Anda lebih lama dari itu, harap tingkatkan versinya.

_>python -m pip install -__U pip_Sekarang kita akan menginstal Flask. Flask adalah kerangka kerja web untuk Python. Flask memberi Anda alat, pustaka, dan teknologi yang memungkinkan Anda membangun aplikasi web dengan Python.

Ketergantungannya adalah,

  • Alat perpustakaan utilitas WSGI
  • jinja2 yang merupakan mesin templatnya

WSGI pada dasarnya adalah protokol yang didefinisikan sehingga aplikasi Python dapat berkomunikasi dengan server web dan dengan demikian digunakan sebagai aplikasi web di luar CGI.

Jinja2 digunakan untuk membuat tampilan dalam aplikasi labu. Ini menampung semua file statis seperti file html, CSS dan JavaScript.

Pertama instal Flask menggunakan perintah pip di command prompt.

_>pip install Flask_Ini akan menginstal versi terbaru dari perpustakaan flask dari repositori globalnya dan di mesin Windows itu menyimpan lokasi file di bawah ini

C:Program Files (x86)PythonPython37-32Libsite-packages

Contoh aplikasi kami menggunakan MongoDB sebagai database. Jadi, kita akan menginstal Mongo DB dari URL di bawah ini.

https://www.mongodb.com/download-center#community

Ini adalah versi komunitas gratis. Setelah instalasi berhasil, semuanya siap untuk menjalankan instance MongoDB.

Sebelum menjalankan instance MongoDB, kita harus membuat folder data dan menjalankan perintah di bawah ini di command prompt.

C:Program FilesMongoDBServer4.0inmongod.exe --dbpath=C:mongo-data

Di sini folder C:mongo-data digunakan untuk menyimpan file mongodb.

Saat menginstal MongoDB di sistem windows, Anda juga dapat memilih edisi komunitas kompas.

Ini adalah edisi gratis dan akan membantu menangani database MongoDB kami, koleksi (tabel di MongoDB) dan dokumen (catatan) secara grafis

Cara menggunakan python mongo find_one

Secara default, MongoDB berjalan di port localhost 27017.

Kita bisa melihat ada 3 database, (admin, config dan local) yang dibuat secara otomatis pada saat instalasi.

Cara menggunakan python mongo find_one

Sekarang kita akan menginstal PyMongolibrary dengan python. PyMongo adalah distribusi Python sederhana namun kuat yang berisi alat untuk bekerja dengan MongoDB dan merupakan cara yang disarankan untuk bekerja dengan MongoDB dari Python. Ini semacam ODM (pemeta dokumen objek). Ada mongoengine dan begitu banyak perpustakaan juga tersedia sebagai ODM untuk Python.

>pip install pymongo

Kita perlu menginstal pustaka Python lain, bson juga. Ini digunakan untuk mendapatkan properti objectId dari dokumen mongodb.

>pip install bson

Sekarang kita sudah siap dan siap untuk memulai program python kita. Buat folder bernama FlaskwithMongo dan tambahkan dua sub folder, statis dan template, di dalamnya. Ada konvensi untuk memberi nama statis dan templat yang digunakan dalam kerangka kerja jinja2. Silakan buka folder di salah satu editor kode. Saya menggunakan kode Visual Studio sebagai IDE. Buat file baru bernama app.py . Ini adalah satu-satunya file Python yang kami gunakan dalam aplikasi ini. Pertama, kita akan mengimpor perpustakaan yang diperlukan ke dalam aplikasi kita.

  1. dari labu impor Flask, render_template,request,redirect,url_for
  2. dari bson impor ObjectId
  3. dari pymongo impor MongoClient
  4. impor

Sekarang kita akan mendeklarasikan variabel aplikasi dalam program kita.

aplikasi = Labu( nama )

Variabel aplikasi ini digunakan di seluruh aplikasi.

Sekarang kita akan mendeklarasikan dua judul variabel dan heading yang nantinya digunakan dalam template jinja2.

title = 'TODO sample application with Flask and MongoDB' heading = 'TODO Reminder with Flask and MongoDB'

Kita harus mendeklarasikan string koneksi untuk MongoDB dan memilih database. Juga, kita akan memilih nama koleksi kita ke variabel.

client = MongoClient('mongodb://127.0.0.1:27017') #host uri db = client.mymongodb #Select the database todos = db.todo #Select the collection name

Seperti yang saya sebutkan sebelumnya mongodb berjalan di port 27017 secara default. Harap dicatat bahwa kami telah memilih mymongodb sebagai database dan todo sebagai nama koleksi. Saat kita membuat transaksi pertama kita, pymongo akan menghasilkan database dan koleksi secara otomatis. Tidak seperti SQL server atau mongodb RDBMS lainnya tidak memerlukan skema yang telah ditentukan sebelumnya.

Dalam labu, mudah untuk mengimplementasikan perutean tidak seperti bahasa pemrograman lainnya.

Untuk itu, kami menggunakan render_template , permintaan, pengalihan dan url_for. Semua metode ini membantu kami membuat pengalihan dan menampilkan template html di browser

def redirect_url(): return request.args.get('next') or request.referrer or url_for('index')

Dalam kode di atas kami mendefinisikan metode bernama _redirect_url _dan digunakan untuk mengarahkan halaman ke halaman indeks.

@app.route('/') @app.route('/uncompleted') def tasks (): #Display the Uncompleted Tasks todos_l = todos.find({'done':'no'}) a2='active' return render_template('index.html',a2=a2,todos=todos_l,t=title,h=heading)

Dalam kode di atas, kami mendefinisikan metode bernama tugas dan digunakan untuk dua rute. Satu untuk default/rute dan satu lagi untuk/rute yang belum selesai. Dalam kode ini kami mendefinisikan variabel todos_l dan mendapatkan dokumen dari filter mongodb dengan kondisi yang dilakukan sama dengan no. Kami mendefinisikan satu variabel lagi bernama a2 dan digunakan untuk mengontrol catatan aktif. Kedua variabel todos_land a2 diteruskan dengan dua variabel lainnya, judul, dan heading, dan diteruskan ke jinja2 template index.html yang harus kita buat di folder template.

Sekarang kita akan menyelesaikan semua definisi rute yang tersisa untuk menambahkan dan menghapus dokumen ke mongodb

** app.py **

from flask import Flask, render_template,request,redirect,url_for # For flask implementation from bson import ObjectId # For ObjectId to work from pymongo import MongoClient import os app = Flask(__name__) title = 'TODO sample application with Flask and MongoDB' heading = 'TODO Reminder with Flask and MongoDB' client = MongoClient('mongodb://127.0.0.1:27017') #host uri db = client.mymongodb #Select the database todos = db.todo #Select the collection name def redirect_url(): return request.args.get('next') or request.referrer or url_for('index') @app.route('/list') def lists (): #Display the all Tasks todos_l = todos.find() a1='active' return render_template('index.html',a1=a1,todos=todos_l,t=title,h=heading) @app.route('/') @app.route('/uncompleted') def tasks (): #Display the Uncompleted Tasks todos_l = todos.find({'done':'no'}) a2='active' return render_template('index.html',a2=a2,todos=todos_l,t=title,h=heading) @app.route('/completed') def completed (): #Display the Completed Tasks todos_l = todos.find({'done':'yes'}) a3='active' return render_template('index.html',a3=a3,todos=todos_l,t=title,h=heading) @app.route('/done') def done (): #Done-or-not ICON id=request.values.get('_id') task=todos.find({'_id':ObjectId(id)}) if(task[0]['done']=='yes'): todos.update({'_id':ObjectId(id)}, {'$set': {'done':'no'}}) else: todos.update({'_id':ObjectId(id)}, {'$set': {'done':'yes'}}) redir=redirect_url() return redirect(redir) @app.route('/action', methods=['POST']) def action (): #Adding a Task name=request.values.get('name') desc=request.values.get('desc') date=request.values.get('date') pr=request.values.get('pr') todos.insert({ 'name':name, 'desc':desc, 'date':date, 'pr':pr, 'done':'no'}) return redirect('/list') @app.route('/remove') def remove (): #Deleting a Task with various references key=request.values.get('_id') todos.remove({'_id':ObjectId(key)}) return redirect('/') @app.route('/update') def update (): id=request.values.get('_id') task=todos.find({'_id':ObjectId(id)}) return render_template('update.html',tasks=task,h=heading,t=title) @app.route('/action3', methods=['POST']) def action3 (): #Updating a Task with various references name=request.values.get('name') desc=request.values.get('desc') date=request.values.get('date') pr=request.values.get('pr') id=request.values.get('_id') todos.update({'_id':ObjectId(id)}, {'$set':{ 'name':name, 'desc':desc, 'date':date, 'pr':pr }}) return redirect('/') @app.route('/search', methods=['GET']) def search(): #Searching a Task with various references key=request.values.get('key') refer=request.values.get('refer') if(key=='_id'): todos_l = todos.find({refer:ObjectId(key)}) else: todos_l = todos.find({refer:key}) return render_template('searchlist.html',todos=todos_l,t=title,h=heading) if __name__ == '__main__': app.run()

Kita harus menambahkan tiga file HTML di bawah ini ke dalam folder templates. (index.html, searchlist.html dan update.html)

index.html

perpustakaan peta reaksi
{{t}}
  • ALL
  • Uncompleted
  • Completed

{% if todos[0] %}
Search Reference: Task Name Description Date Priority Search
To-Do LIST : {% for todo in todos %}
Status Task Name Description Name Date Priority Remove Modify
app.py .

In addition, we must add emoji.css, emoji.js, style.css and twemoji.min.js files in the staticassets folder

emoji.css

img.emoji { // Override any img styles to ensure Emojis are displayed inline margin: 0px !important; display: inline !important; } 

emoji.js

window.onload = function() { // Set the size of the rendered Emojis // This can be set to 16x16, 36x36, or 72x72 twemoji.size = '16x16'; // Parse the document body and // insert tags in place of Unicode Emojis twemoji.parse(document.body); }

style.css

h2{ /* font-family:'Arial Black', Gadget, sans-serif;*/ font-family:'Times New Romans', Gadget, sans-serif; } body{ color:black; background-color:white; left-margin:10px; right-margin:10px; } table{ width:95%; border-collapse:collapse; table-layout:fixed; } td { border: rgba(224, 119, 70, 1) 2px solid; word-wrap:break-word; } table#close{ table-layout:default; border-collapse:seperate; border-spacing: 5px 5px; border:none; vertical-align:top; } table.none { border:none; vertical-align:top; } table.none td { border: none; } tr.row td{ text-decoration:italic; } th.status{ width:5%; } th.name{ width:20%; } th.des{ width:40%; padding:5px 5px 5px 5px; } th.date{ width:8%; } th.pr{ width:7%; } th.func1{ width:6%; } th.func2{ width:5%; } input[type=submit] { width: 20em; height: 2em; } ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; } li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } a.active { background-color: #4CAF50; } /* Change the link color to #111 (black) on hover */ li a:hover { background-color: #111; }

Ada dua gambar, _no._

Secara default, ia mendengarkan port 27017.

Silakan buka jendela prompt perintah lain di folder aplikasi Python yang sama dan jalankan Python dengan perintah di bawah ini.

Sebagai contoh:

D:PythonFlaskWithMongo>python app.py

Server lokal kami berjalan di port 5000 secara default.

Cara menggunakan python mongo find_one

Aplikasi sekarang berjalan dengan sukses.

Cara menggunakan python mongo find_one

Anda sekarang dapat menambahkan tugas sampel sebagai nama tugas Tugas uji untuk mongo dengan aplikasi flask, deskripsi Deskripsi sampel, tanggal 05-08-2018' dan prioritas Tinggi

Setelah mengklik tombol Buat, kita dapat langsung melihat detail tugas di kisi.

Cara menggunakan python mongo find_one

Harap dicatat bahwa ada database baru bernama mymongodb dan koleksi todo dibuat sekarang. Dengan menggunakan aplikasi ini, Anda dapat mengedit dan menghapus dokumen yang ada dengan mudah.

Anda dapat memeriksa detail dokumen di komunitas kompas mongodb juga.

Cara menggunakan python mongo find_one

Selamat coding dengan Flask dan MongoDB!!!

Anda dapat mengunduh kode sumber dari Github .

Terima kasih!

#python #flask #mongoDB #pymongo #TODO Contoh Aplikasi