Bina platform perkongsian foto yang diperibadikan: Panduan aplikasi foto Webman
Abstrak:
Dengan kemajuan teknologi dan populariti telefon pintar, permintaan orang ramai untuk mengambil gambar dan berkongsi foto terus berkembang. Artikel ini akan memperkenalkan cara menggunakan Webman untuk membina platform perkongsian foto yang diperibadikan. Webman ialah rangka kerja web berdasarkan bahasa Python, menyediakan fungsi yang kaya dan antara muka API yang mudah digunakan. Melalui panduan dalam artikel ini, anda akan belajar cara menggunakan Webman untuk membina platform perkongsian foto dengan fungsi yang diperibadikan, dan menambah beberapa contoh kod praktikal.
Pasang Webman
Mula-mula, kita perlu memasang Webman. Pemasangan Webman adalah sangat mudah, hanya gunakan arahan pip untuk memasangnya dengan satu baris:
pip install webman
Buat projek
Selepas memasang Webman, kita boleh menggunakan alat baris arahan Webman untuk mencipta projek baharu:
webman create myphotoapp
Ini akan Cipta direktori projek baharu yang dipanggil myphotoapp dan cipta struktur projek asas.
Tentukan model pangkalan data
Buat fail bernama models.py dalam direktori myphotoapp. Dalam fail ini, kami akan mentakrifkan model pangkalan data untuk Foto dan Pengguna:
from webman import db class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(80), nullable=False) class Photo(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) filename = db.Column(db.String(80), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) user = db.relationship('User', backref=db.backref('photos', lazy=True))
Dalam contoh ini, kami telah mencipta dua kelas model: Pengguna dan Foto. Model Pengguna digunakan untuk menyimpan maklumat pengguna, dan model Foto digunakan untuk menyimpan maklumat foto. Kami menggunakan db.Column untuk mentakrifkan medan dalam model dan db.relationship untuk mentakrifkan perhubungan antara model.
Buat laluan dan pandangan
Buat fail bernama views.py dalam direktori myphotoapp. Dalam fail ini, kami akan mentakrifkan laluan dan fungsi paparan untuk aplikasi foto:
from webman import app, db from webman.auth import login_required from webman.shortcuts import render_template, redirect, url_for from .models import User, Photo @app.route('/') @login_required def index(): user = User.query.get(session['user_id']) photos = Photo.query.filter_by(user_id=user.id).all() return render_template('index.html', user=user, photos=photos) @app.route('/upload', methods=['GET', 'POST']) @login_required def upload(): if request.method == 'POST': file = request.files['file'] filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) photo = Photo(title=request.form['title'], filename=filename, user_id=session['user_id']) db.session.add(photo) db.session.commit() return redirect(url_for('index')) return render_template('upload.html')
Dalam contoh ini, kami telah menentukan dua laluan: '/' dan '/upload'. Laluan '/' digunakan untuk memaparkan senarai foto pengguna, dan laluan 'muat naik' digunakan untuk mengendalikan permintaan pengguna untuk memuat naik foto. Kami menggunakan penghias @login_required untuk memastikan pengguna dilog masuk semasa mengakses laluan ini.
Buat templat
Buat folder bernama templat dalam direktori myphotoapp dan buat dua fail templat HTML di dalamnya: index.html dan upload.html.
index.html digunakan untuk memaparkan senarai foto:
{% extends 'base.html' %} {% block content %} <h1>Welcome, {{ user.username }}</h1> <h2>Your Photos</h2> <ul> {% for photo in photos %} <li>{{ photo.title }}</li> {% endfor %} </ul> <a href="{{ url_for('upload') }}">Upload a Photo</a> {% endblock %}
upload.html digunakan untuk memaparkan borang untuk memuat naik foto:
{% extends 'base.html' %} {% block content %} <h1>Upload a Photo</h1> <form action="{{ url_for('upload') }}" method="POST" enctype="multipart/form-data"> <input type="file" name="file" required> <input type="text" name="title" placeholder="Title" required> <input type="submit" value="Upload"> </form> {% endblock %}
Jalankan aplikasi
Selepas melengkapkan langkah di atas, kita boleh menggunakan alat baris arahan Webman untuk menjalankan aplikasi:
webman run
Ini akan memulakan pelayan tempatan dan mendengar pada http://localhost:5000. Buka alamat ini dalam penyemak imbas anda dan anda boleh melihat platform perkongsian foto yang kami buat.
Kesimpulan:
Melalui panduan dalam artikel ini, anda mempelajari cara menggunakan Webman untuk membina platform perkongsian foto yang diperibadikan. Kami melengkapkan aplikasi perkongsian foto asas dengan mentakrifkan model pangkalan data, mencipta laluan dan pandangan serta mencipta templat. Anda boleh mengembangkan lagi aplikasi ini mengikut keperluan anda sendiri, seperti menambah pendaftaran pengguna, fungsi komen, dll. Saya harap artikel ini akan membantu anda membina platform perkongsian foto yang diperibadikan!
Atas ialah kandungan terperinci Membina Platform Perkongsian Foto Diperibadikan: Panduan Webman untuk Aplikasi Foto. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!