cari
Rumahpembangunan bahagian belakangTutorial PythonPengaturcaraan pelayan Python: menggunakan Flask-Login untuk melaksanakan log masuk pengguna

Pengaturcaraan pelayan Python: Menggunakan Flask-Login untuk melaksanakan log masuk pengguna

Dengan pembangunan dan populariti aplikasi web, log masuk pengguna telah menjadi fungsi penting untuk banyak aplikasi. Dalam pengaturcaraan pelayan Python, Flask ialah rangka kerja pembangunan web yang digunakan secara meluas. Selain itu, Flask juga menyediakan banyak sambungan pihak ketiga, seperti Flask-Login, yang boleh membantu kami melaksanakan fungsi log masuk pengguna dengan cepat.

Artikel ini akan memperkenalkan cara menggunakan sambungan Flask-Login untuk melaksanakan fungsi log masuk pengguna dalam pelayan Python. Sebelum itu, kita perlu memasang sambungan Flask dan Flask-Login. Anda boleh menggunakan arahan pip untuk memasang:

pip install Flask Flask-Login

Sekarang mari kita mula melaksanakan sistem log masuk pengguna kami.

  1. Mencipta aplikasi Flask

Pertama, kita perlu mencipta aplikasi Flask. Cipta fail app.py dalam direktori akar dan tulis kod berikut di dalamnya:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello World!"

if __name__ == "__main__":
    app.run(debug=True)

Dalam contoh ini, kami telah mencipta aplikasi Flask dan menentukan laluan root mengembalikan "Hello World !". Kami juga menggunakan __name__ == "__main__" pernyataan bersyarat untuk memastikan bahawa aplikasi Flask hanya berjalan apabila kami menjalankan skrip.

Kini, kami telah berjaya mencipta aplikasi Flask yang mudah.

2. Cipta model pengguna

Dalam contoh ini, kami menganggap bahawa nama pengguna dan kata laluan pengguna telah disimpan ke pangkalan data. Jadi kita perlu menentukan model pengguna terlebih dahulu supaya semasa log masuk kita boleh menyemak sama ada pengguna itu wujud.

Tambahkan kod berikut dalam fail app.py:

from flask_login import UserMixin

class User(UserMixin):
    def __init__(self, id):
        super().__init__()
        self.id = id

    def __repr__(self):
        return f"<User {self.id}>"

Dalam contoh ini, kami mentakrifkan kelas Pengguna, yang mewarisi daripada kelas UserMixin Flask-Login. UserMixin menyediakan beberapa sifat dan kaedah yang berguna, termasuk:

  • is_authenticated: Benar jika pengguna telah disahkan.
  • is_active: Benar jika pengguna aktif.
  • is_anonymous: Benar jika pengguna tidak disahkan.
  • get_id: Mengembalikan perwakilan rentetan ID pengguna.

Dalam pembina kelas Pengguna, kami memasukkan ID pengguna. Kami juga mentakrifkan kaedah __repr__ untuk melihat lebih banyak maklumat tentang objek pengguna semasa penyahpepijatan dan ujian.

  1. Menulis paparan log masuk

Sekarang, kita perlu menulis paparan log masuk yang akan membenarkan pengguna memasukkan nama pengguna dan kata laluan mereka. Jika nama pengguna dan kata laluan pengguna adalah betul, log masuk berjaya dan objek pengguna ditambahkan pada sesi pengguna Flask-Login.

Tambahkan kod berikut dalam fail app.py:

from flask_login import LoginManager, login_user, current_user

login_manager = LoginManager()
login_manager.init_app(app)

@login_manager.user_loader
def load_user(user_id):
    return User(user_id)

@app.route("/login")
def login():
    user_id = request.args.get("user_id")
    password = request.args.get("password")
    if user_id and password:
        # 省略查询数据库的代码
        user = User(user_id)
        login_user(user)
        return "Login success!"
    else:
        return "Login failed!"

@app.route("/logout")
def logout():
    logout_user()
    return "Logout success!"

Dalam contoh ini, kami mula-mula mencipta objek LoginManager. Kami kemudiannya mentakrifkan fungsi panggil balik user_loader yang mengambil ID pengguna sebagai parameter dan mengembalikan objek pengguna yang sepadan dengan ID tersebut. Dalam contoh ini, kami mencipta objek User baharu dan lulus ID sebagai parameter.

Seterusnya, kami mentakrifkan paparan log masuk. Dalam fungsi paparan, kami menggunakan kaedah request.args.get untuk mendapatkan ID pengguna dan kata laluan daripada rentetan pertanyaan. Kemudian kami menyemak sama ada ID pengguna dan kata laluan adalah sah. Jika nama pengguna dan kata laluan pengguna adalah betul, cipta objek User baharu dan gunakan fungsi login_user untuk menambah objek pada sesi pengguna Flask-Login. Jika nama pengguna dan kata laluan pengguna salah, pengguna tidak boleh log masuk.

Akhir sekali, kami mentakrifkan paparan log keluar, yang menggunakan fungsi logout_user untuk mengalih keluar objek pengguna semasa daripada sesi pengguna Flask-Login dan mengembalikan mesej yang menunjukkan log keluar yang berjaya.

  1. Lindungi pandangan lain

Kini, kami telah melaksanakan sistem log masuk pengguna tetapi kami tidak menggunakannya untuk melindungi pandangan lain. Dalam contoh ini, kami akan melindungi halaman yang dipanggil "profil" yang hanya boleh diakses apabila pengguna log masuk. Jika pengguna tidak log masuk, mereka akan dialihkan ke halaman log masuk.

Tambah kod berikut dalam fail app.py:

from flask_login import login_required

@app.route("/profile")
@login_required
def profile():
    return f"Welcome, {current_user.id}!"

Dalam contoh ini, kami menggunakan penghias login_required untuk melindungi laluan "profil". Jika pengguna tidak log masuk, penghias ini akan mengubah hala ke halaman log masuk.

Apabila melindungi paparan, kami juga menggunakan current_user pembolehubah global untuk mengakses maklumat pengguna yang sedang log masuk. Dalam contoh ini, kami menambah mesej alu-aluan ringkas yang mengandungi ID pengguna yang sedang log masuk.

  1. Jalankan aplikasi

Kini, kami telah menyelesaikan semua pelaksanaan sistem log masuk pengguna. Mari jalankan aplikasi dan ujinya.

Masukkan arahan berikut dalam terminal untuk melancarkan aplikasi:

python app.py

Masukkan URL berikut dalam penyemak imbas untuk mengakses halaman utama:

http://localhost:5000/

Anda seharusnya melihat "Hello World !" rentetan. Sekarang cuba akses URL berikut:

http://localhost:5000/profile

Memandangkan anda bukan pengguna yang disahkan, anda akan dialihkan ke halaman log masuk. Masukkan ID pengguna dan kata laluan yang sah dalam rentetan pertanyaan, contohnya:

http://localhost:5000/login?user_id=1&password=password123

Jika anda memasukkan nama pengguna dan kata laluan yang betul, anda sepatutnya melihat "Mesej log masuk!" Sekarang, akses laluan "/profile" sekali lagi dan ia sepatutnya memaparkan mesej alu-aluan yang mengandungi ID pengguna yang sedang log masuk.

如果你在浏览器中访问以下URL,则可以注销当前会话:

http://localhost:5000/logout

这样就完成了用户登录系统的所有实现。

总结

在本文中,我们介绍了如何使用Flask-Login扩展在Python服务器中实现用户登录功能。使用Flask-Login可以方便地验证和保护Web应用程序中的用户数据。此外,Flask-Login提供了许多有用的功能和方法,如会话管理和用户保护。希望这篇文章能够帮助你更好地了解如何使用Flask-Login编写Python服务器应用程序。

Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: menggunakan Flask-Login untuk melaksanakan log masuk pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Python vs C: Aplikasi dan kes penggunaan dibandingkanPython vs C: Aplikasi dan kes penggunaan dibandingkanApr 12, 2025 am 12:01 AM

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Rancangan Python 2 jam: Pendekatan yang realistikRancangan Python 2 jam: Pendekatan yang realistikApr 11, 2025 am 12:04 AM

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python: meneroka aplikasi utamanyaPython: meneroka aplikasi utamanyaApr 10, 2025 am 09:41 AM

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Berapa banyak python yang boleh anda pelajari dalam 2 jam?Berapa banyak python yang boleh anda pelajari dalam 2 jam?Apr 09, 2025 pm 04:33 PM

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam?Apr 02, 2025 am 07:18 AM

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah?Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah?Apr 02, 2025 am 07:15 AM

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6?Apa yang perlu saya lakukan jika modul '__builtin__' tidak dijumpai apabila memuatkan fail acar di Python 3.6?Apr 02, 2025 am 07:12 AM

Memuatkan Fail Pickle di Python 3.6 Kesalahan Laporan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Bagaimana untuk meningkatkan ketepatan segmentasi kata Jieba dalam analisis komen tempat yang indah?Bagaimana untuk meningkatkan ketepatan segmentasi kata Jieba dalam analisis komen tempat yang indah?Apr 02, 2025 am 07:09 AM

Bagaimana untuk menyelesaikan masalah segmentasi kata Jieba dalam analisis komen tempat yang indah? Semasa kami mengadakan komen dan analisis tempat yang indah, kami sering menggunakan alat segmentasi perkataan jieba untuk memproses teks ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod