Python flask의 flask_login에 둘 이상의 사용자 추가.
<form action="/login" method="post">
{% include "messages.html" %}
<div class="form-group">
<input type="email" class="form-control mt-2" name="ulmail" placeholder="Enter E-mail" required>
</div>
<div class="form-group">
<input type="password" class="form-control mt-2" name="ulpass" placeholder="Enter password" required>
</div>
<div class="form-group">
<input type="text" class="form-control mt-2" name="ulabel" value="User" readonly>
</div>
<div class="text-center">
<br>
<button type="submit" class="btn btn-primary btn-rounded">Log In</button>
</div>
</form>
위의 형식으로 이름 = "레이블"및 값 = "사용자"인 마지막 분할에서 사용자 1로부터 입력을 받고 있습니다. 읽기 전용입니다.
<form action="/doctorlogin" method="post">
{% include "messages.html" %}
<div class="form-group">
<input type="email" class="form-control mt-2" name="dlmail" placeholder="Enter E-mail" required>
</div>
<div class="form-group">
<input type="text" class="form-control mt-2" name="dluprn" placeholder="Enter UPRN" required>
</div>
<div class="form-group">
<input type="password" class="form-control mt-2" name="dlpass" placeholder="Enter password" required>
</div>
<div class="form-group">
<input type="text" class="form-control mt-2" name="dlabel" value="Doctor" readonly>
</div>
<div class="text-center">
<br>
<button type="submit" class="btn btn-primary btn-rounded">Log In</button>
</div>
</form>
여기서 name="dlabel"및 value="의사".
여기서 사용자 1= 사용자 및
사용자 2= 의사.
dl = "nan"
@login_manager.user_loader
def load_user(user_id):
if dl == "Doctor":
return Doctor.query.get(int(user_id))
elif dl == "User":
return User.query.get(int(user_id))
여기에서는 mysql databse(XAMPP)를 연결하기 위해 sqlalchemy 모듈을 사용하고 있습니다.
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:@127.0.0.2:3307/medserv"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
"의사"및 "사용자"는 "medserv"데이터베이스에서 서로 다른 두 테이블입니다.
@app.route("/login", methods=['POST','GET'])
def login():
if request.method == "POST":
global dl
email = request.form.get('ulmail')
upass = request.form.get('ulpass')
dl = request.form.get('ulabel')
user = User.query.filter_by(umail = email).first_or_404(description='There is no data with {}'.format(email))
if user and user.upass == upass:
login_user(user)
postsdata = Userdata.query.filter_by(email = email).all()
flash("Login Successful", "success")
return render_template("cusers.html", postsdata=postsdata)
else:
flash("Invalid Credential", "danger")
return render_template("userlogin.html")
return render_template("userlogin.html")
이 클래스에서 dl을 전역으로 정의하고 양식에서 수집한 레이블 값을 "dl"변수에 저장하고 로그인 세션을 시작합니다. dl=="User"이기 때문에 사용자 1로 로그인하므로 로그인 관리자가 테이블 2로 리디렉션되거나 사용자 테이블에 대한 로그인이라고 말할 수 있습니다.
@app.route("/doctorlogin", methods=['POST','GET'])
def doctorlogin():
if request.method == "POST":
global dl
email = request.form.get('dlmail')
upass = request.form.get('dlpass')
uprn = request.form.get('dluprn')
dl = request.form.get('dlabel')
user = Doctor.query.filter_by(dmail = email).first_or_404(description='There is no data with {}'.format(email))
if user and user.dpass == upass and user.duprn==uprn:
login_user(user)
postsdata = Doctordata.query.filter_by(udcon = email).all()
flash("Login Successful", "success")
return render_template("docdash.html",postsdata=postsdata)
else:
flash("Invalid Credential", "danger")
return render_template("doctorlogin.html")
return render_template("doctorlogin.html")
이제 dl=="의사"사용자 2로 로그인하여 의사에 해당하는 테이블에서 정보를 검색합니다.
Reference
이 문제에 관하여(Python flask의 flask_login에 둘 이상의 사용자 추가.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bithunter/adding-more-than-one-user-in-flasklogin-in-python-flask-1k14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)