Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh GIT chấp nhận cả tên thẻ và tên chi nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi bất ngờ. Bạn có chắc là bạn muốn tạo chi nhánh này?
Bạn đang cố gắng xây dựng một ứng dụng web bằng bình và bạn cần có một hệ thống đăng nhập trong đó. Bạn cần một cơ sở dữ liệu để lưu trữ thông tin đăng nhập của người dùng. Ở đây, trong bài viết này, tôi sẽ giới thiệu bạn với SQLalchemy và cách sử dụng nó trong bình để tạo ra một hệ thống đăng nhập.
Trong hướng dẫn này, chúng tôi sẽ sử dụng hệ thống cơ sở dữ liệu MySQL. Bây giờ, trước tiên chúng ta hãy hiểu Sqlalchemy là gì.
Lưu ý: Hướng dẫn này không bao gồm những điều cơ bản của bình
Sqlalchemy là gì?
SQLalchemy là bộ công cụ cơ sở dữ liệu và nó cung cấp cách để Python tương tác với cơ sở dữ liệu. Bạn có thể sử dụng bất kỳ MongoDB, PostgreSQL, SQLite và MySQL.
Cài đặt
PIP Cài đặt Flask-Sqlalchemy
Sao chép lệnh này và dán nó vào thiết bị đầu cuối của bạn. Bây giờ bạn chỉ phải đợi một thời gian để cài đặt hoàn thành.
Hãy để mã mã
@app.route (Hồi/) def hello (): return render_template (‘home.html,)
def
hello():
return render_template(‘home.html’)
Đây là những gì ứng dụng bình cơ bản nên được. Nhưng chúng tôi phải tạo một hệ thống đăng nhập để chúng tôi sẽ tập trung vào mã hóa của nó.
Điều đầu tiên cần làm là tạo cơ sở dữ liệu. Sử dụng thiết bị đầu cuối hoặc phpmyadmin của bạn để tạo cơ sở dữ liệu. Sau khi bạn tạo cơ sở dữ liệu, hãy truy cập trình soạn thảo văn bản của bạn và bắt đầu nhập mã dưới đây.
Bạn có thể trực tiếp sao chép từ đây. Chỉ cần thực hiện một số thay đổi như thay đổi tên người dùng, mật khẩu. Như bạn có thể thấy trong nhận xét, tên cơ sở dữ liệu là ‘Đăng ký.
Từ bình Nhập bình, Render_Template, url_for, yêu cầu, phiên, ghi nhật ký, chuyển hướng, flash từ sqlalchemy nhập created_engine từ sqlalchemy.
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session,sessionmaker
Từ passlib.hash nhập sha256_crypt động cơ = created_engine ( )
engine=create_engine(“mysql+pymysql://shubham:shubham123@localhost/register”)
#mysql+pymysql://username:password@localhost/databasename
db=scoped_session(sessionmaker(bind=engine))
Bây giờ tạo một trang đăng ký bằng HTML.
Trang đăng ký của bạn có thể như thế này. Mã được đưa ra dưới đây.
Đăng ký
Nộp
Lưu ý: Bạn có thể sử dụng Navbar trong Bootstrap để dán đăng nhập và đăng ký của bạn trên thanh điều hướng.
Bây giờ, chúng ta hãy tạo một trang đăng nhập để chúng ta có thể tập trung rõ ràng vào mã Python. Trang đăng nhập có thể tương tự như thế này.
Hoặc bạn có thể chỉ cần sao chép mã này.
{ % nếu phiên %} bạn đã đăng nhập { % other %}
You are logged in already
{% else %}
Đăng nhập
Gửi { % endif %}
{% endif %}
Bây giờ là phần chính của Hướng dẫn SQLalchemy của Flask. Các tập tin Python! Đây là mã bạn sẽ viết. Đọc nó, sau đó đọc giải thích dưới đây.
Ứng dụng = Flask (__ name__)
#app.static_folder = 'static' #register form @app.route (Hồi/đăng ký ) username = request.form.get (tên người dùng tên gọi) mật khẩu = request.form.get (mật khẩu mật khẩu) xác nhận = request.form.get (xác nhận xác nhận
#register form
@app.route(“/register”,methods=)
def register():
if request.method==”POST”:
name=request.form.get(“name”)
username=request.form.get(“username”)
password=request.form.get(“password”)
confirm=request.form.get(“confirm”)
secure_password=sha256_crypt.encrypt(str(password))
usernamedata = db.execute (tên chọn tên người dùng từ người dùng nơi người dùng tên =: tên người dùng, {{tên người dùng tên: tên người dùng}). .Execute (chèn vào người dùng (tên, tên người dùng, mật khẩu) giá trị (: tên,: tên người dùng,: mật khẩu) . ')
#usernamedata=str(usernamedata)
if usernamedata==None:
if
password==confirm:
db.execute(“INSERT INTO users(name,username,password) VALUES(:name,:username,:password)”,
{“name”:name,”username”:username,”password”:secure_password})
db.commit()
flash(“You are registered and can now login”,”success”)
return redirect(url_for(‘login’))
else:
flash(“password does not match”,”danger”)
return render_template(‘register.html’)
else:
flash(“user already existed, please login or contact admin”,”danger”)
return
redirect(url_for(‘login’))
trả về render_template (‘đăng ký.html,)
@App.Route (Hồi/Đăng nhập, Phương thức =) def Đăng nhập (): Nếu request.method == "
def login():
if request.method==”POST”:
username=request.form.get(“name”)
password=request.form.get(“password”)
usernamedata = db.execute (tên chọn tên người dùng từ người dùng trong đó tên người dùng =: username, {{tên người dùng tên: tên người dùng}). Tên người dùng ”: Tên người dùng}). Fetchone ()
passworddata=db.execute(“SELECT password FROM users WHERE username=:username”,{“username”:username}).fetchone()
Nếu usernamedata không phải là không: flash (không có tên người dùng, thì nguy hiểm Bây giờ đã đăng nhập !! 'Đăng nhập.html')
flash(“No username”,”danger”)
return render_template(‘login.html’)
else:
for passwor_data in passworddata:
if sha256_crypt.verify(password,passwor_data):
session=True
flash(“You are now logged in!!”,”success”)
return redirect(url_for(‘hello’)) #to be edited from here do redict to either svm or home
else:
flash(“incorrect password”,”danger”)
return render_template(‘login.html’)
trả về render_template (‘login.html,)
Chúng tôi đã tạo đối tượng DB trong đoạn mã hóa đầu tiên. EXECUTE () được sử dụng để thực thi các lệnh SQL.
Flash được sử dụng để hiển thị tin nhắn trên màn hình liên quan đến chi tiết đăng nhập. SHA được sử dụng để mã hóa mật khẩu của người dùng và phiên được tạo, vì vậy nếu người dùng được đăng nhập thì chỉ có anh ấy/cô ấy mới có thể xem các liên kết nhất định.
Ở đây, một ứng dụng học máy mà tôi đã xây dựng bằng thuật toán, bình và sqlalchemy.