Cara menggunakan Python untuk membangunkan fungsi pengurusan muat turun fail sistem CMS

PHPz
Lepaskan: 2023-08-04 21:50:01
asal
1483 orang telah melayarinya

Cara menggunakan Python untuk membangunkan fungsi pengurusan muat turun fail sistem CMS

Ikhtisar:
Dengan perkembangan pesat Internet, sistem pengurusan kandungan (CMS) memainkan peranan penting dalam pembangunan laman web. Sistem CMS bukan sahaja menyediakan fungsi pengurusan kandungan dan penerbitan laman web, tetapi juga perlu mempunyai fungsi pengurusan muat turun fail. Artikel ini akan memperkenalkan cara menggunakan Python untuk membangunkan fungsi pengurusan muat turun fail sistem CMS untuk membantu pembangun lebih memahami dan menerapkannya. Persediaan Kawasan:

First, pasang alat dan perpustakaan berikut dalam persekitaran pembangunan tempatan anda:
  1. Python: Pastikan penterjemah python (versi 3.x) dipasang; laman web;
  2. SQLAlchemy: alat ORM yang digunakan secara meluas dalam Python untuk memudahkan operasi pangkalan data;
  3. MySQL: sebagai bahagian belakang pangkalan data untuk menyimpan fail dan maklumat yang berkaitan
  4. Reka bentuk pangkalan data:
  5. Dibuat dalam jadual pangkalan data MySQL; " digunakan untuk menyimpan maklumat berkaitan fail:
  6. CREATE TABLE downloads (
      id INT(11) PRIMARY KEY AUTO_INCREMENT,
      title VARCHAR(100) NOT NULL,
      filename VARCHAR(100) NOT NULL,
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    Salin selepas log masuk
  7. Jadual ini mengandungi tajuk fail (tajuk), nama fail (nama fail) dan masa penciptaan (created_at).

  8. Fungsi muat naik fail:

    Gunakan Flask untuk membangunkan aplikasi web, melaksanakan fungsi muat naik fail, menyimpan fail yang dimuat naik ke pelayan dan menyimpan maklumat berkaitan dalam pangkalan data. Dengan mengandaikan bahawa fungsi muat naik fail telah dilaksanakan, berikut ialah kod sampel:

    from flask import Flask, request, render_template
    from flask_sqlalchemy import SQLAlchemy
    from werkzeug.utils import secure_filename
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/db_name'
    db = SQLAlchemy(app)
    
    class Download(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     title = db.Column(db.String(100), nullable=False)
     filename = db.Column(db.String(100), nullable=False)
     created_at = db.Column(db.TIMESTAMP, default=db.func.current_timestamp())
    
    @app.route('/upload', methods=['GET', 'POST'])
    def upload_file():
     if request.method == 'POST':
         title = request.form['title']
         file = request.files['file']
         filename = secure_filename(file.filename)
         file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
    
         download = Download(title=title, filename=filename)
         db.session.add(download)
         db.session.commit()
    
         return '文件上传成功!'
    
     return render_template('upload.html')
    Salin selepas log masuk
  9. Dalam kod di atas, "UPLOAD_FOLDER" ialah laluan folder untuk menyimpan fail yang dimuat naik Sila tetapkannya mengikut situasi tertentu.

  10. Fungsi muat turun fail:

    Kunci untuk merealisasikan fungsi muat turun fail adalah dengan menyediakan fail daripada pelayan kepada pengguna untuk dimuat turun. Dalam Flask, ini boleh dicapai dengan mudah menggunakan fungsi send_from_directory. Berikut ialah contoh kod:

    from flask import send_from_directory
    
    @app.route('/download/<int:download_id>')
    def download(download_id):
     download = Download.query.get_or_404(download_id)
     return send_from_directory(app.config['UPLOAD_FOLDER'], download.filename, as_attachment=True)
    Salin selepas log masuk
  11. Dalam kod di atas, "download_id" ialah ID fail yang dimuat turun yang diperoleh daripada URL. Berdasarkan ID, maklumat berkaitan fail diambil daripada pangkalan data, dan kemudian muat turun fail disediakan melalui fungsi send_from_directory.

  12. Paparkan senarai fail yang dimuat turun:

    Untuk memudahkan pengguna melihat senarai fail yang boleh dimuat turun, kami boleh menggunakan enjin templat untuk membentangkan halaman senarai fail yang dimuat turun. Berikut ialah contoh kod:

    @app.route('/')
    def index():
     downloads = Download.query.all()
     return render_template('index.html', downloads=downloads)
    Salin selepas log masuk
  13. Dalam kod di atas, maklumat semua fail yang dimuat turun diperoleh daripada pangkalan data, dan kemudian dihantar ke templat untuk paparan di halaman.

  14. Buat templat:

    Buat folder "templat" dalam direktori projek dan tambahkan dua fail templat berikut:

  15. upload.html: digunakan untuk memaparkan borang fail muat naik
  16. <!DOCTYPE html>
    <html>
    <head>
     <title>文件上传</title>
    </head>
    <body>
     <h2>文件上传</h2>
     <form action="/upload" method="POST" enctype="multipart/form-data">
         <div>
             <label for="title">标题:</label>
             <input type="text" id="title" name="title" required>
         </div>
         <div>
             <label for="file">选择文件:</label>
             <input type="file" id="file" name="file" required>
         </div>
         <div>
             <input type="submit" value="上传">
         </div>
     </form>
    </body>
    </html>
    Salin selepas log masuk

  17. index.html: digunakan Untuk memaparkan senarai fail yang dimuat turun

    <!DOCTYPE html>
    <html>
    <head>
     <title>下载文件列表</title>
    </head>
    <body>
     <h2>下载文件列表</h2>
     <ul>
         {% for download in downloads %}
             <li><a href="/download/{{ download.id }}">{{ download.title }}</a></li>
         {% endfor %}
     </ul>
    </body>
    </html>
    Salin selepas log masuk
    Di atas ialah contoh mudah yang menyenaraikan semua tajuk fail yang tersedia untuk dimuat turun dan menyediakan pautan muat turun.
  18. Ringkasan:

    Melalui langkah di atas, kami berjaya membangunkan fungsi pengurusan muat turun fail sistem CMS menggunakan Python. Dengan menggunakan rangka kerja Flask dan perpustakaan SQLAlchemy, kami boleh memuat naik, memuat turun dan mengurus fail dengan mudah. Ini hanyalah contoh asas, pembangun boleh melanjutkan dan mengoptimumkannya mengikut keperluan sebenar. Saya harap artikel ini dapat memberi sedikit rujukan dan bantuan untuk semua orang dalam membangunkan fungsi muat turun fail dalam sistem CMS.

Atas ialah kandungan terperinci Cara menggunakan Python untuk membangunkan fungsi pengurusan muat turun fail sistem CMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!