웹 개발을 위한 Python 마스터하기
18925 단어 webdevprogrammingbeginnerstutorial
환경 설정.
첫 번째 단계는 플라스크 앱을 개발할 플라스크 환경을 설정하는 것입니다. 원하는 위치에 폴더를 만들고 이름을 FlaskAuthSys로 지정하여 Flask 인증 시스템을 나타냅니다. 명령 프롬프트를 엽니다.
cd
를 사용하여 FlaskAuthSys 폴더로 이동합니다. 아래 코드를 실행합니다.pip install flask
다음 코드를 사용하여 설치된 패키지를 확인하십시오.
pip freeze
flask_sqlalchemy, flask_login, flask_wtf 및 flask_bootstrap도 필요합니다. 다음 코드 줄은 이러한 요구 사항을 설치하는 데 도움이 됩니다. 각 줄을 별도로 복사하여 명령 프롬프트 창에 붙여넣은 다음 실행하십시오.
pip install flask_sqlalchemy
pip install flask_login
pip install flask_wtf
pip install flask_bootstrap
이 작업이 완료되면 pip freeze는 설치된 모든 기능을 표시합니다.
Flask 애플리케이션 설정.
FlaskAuthSys 폴더에 Python 파일
myapp.py
을 생성합니다. 그 안에 아래 파이썬 코드로 인증 시스템에 중요한 모든 기능을 가져와서 파일을 초기화합니다.# import flask itself, request, render_template, resirect and url_for
from flask import Flask,request,render_template,redirect,url_for
# import FlaskForm for the authentication details form
from flask_wtf import FlaskForm
# import fields to be used in the form
from wtforms import StringField, PasswordField
# import validation features from wtf
from wtforms.validators import InputRequired, Email, Length
# import python flask bootstrap
from flask_bootstrap import Bootstrap
# import sqlqlchemy for the database we will need later on
from flask_sqlalchemy import SQLAlchemy
# import login features
from flask_login import LoginManager,UserMixin,login_user,login_required,logout_user
import os
import sqlite3
import flask
이제 앱 인스턴스를 만들어 보겠습니다. 위 코드 아래에 다음을 입력합니다.
myapp=Flask(__name__)
if __name__ == '__main__':
myapp.run(debug=True)
myapp=Flask(__name__)
앱 인스턴스 줄 바로 아래에 다음 코드 블록을 입력합니다.@myapp.route('/')
def index():
return render_template('index.html')
# login section
@myapp.route('/login')
def login():
return render_template('login.html')
# sign up section
@myapp.route('/signup')
def login():
return render_template('signup.html')
# the dashboard
@myapp.route('/dashboard')
def login():
return render_template('dashboard.html')
# log out procedure
@myapp.route('/logout')
def login():
return redirect(url_for('index'))
데이터베이스 초기화.
사용자 등록으로 수집된 정보는 데이터베이스에 저장됩니다. 시작하려면 splite3 자습서를 참조하여 PC에 this을 설치하십시오. 명령 프롬프트를 열고 FlaskAuth Sys 파일로 이동한 후 다음 코드를 붙여넣어 데이터를 저장하는 데 사용할 데이터베이스를 만듭니다.
sqlite3 database.db
sqlite3를 종료하려면 다음을 입력하십시오.
.exit
myapp.py
파일로 돌아가서 데이터 저장소 및 테이블Users
에 사용할 필드를 만듭니다. 이를 수행하는 방법은 다음과 같습니다.class Users(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True)
email = db.Column(db.String(50), unique=True)
password = db.Column(db.String(80))
다음으로 테이블
Users
을 생성된 테이블database.db
로 가져옵니다. 명령 프롬프트에서 다음을 사용하여 Python을 엽니다.python
그런 다음 명령 프롬프트에서 다음 줄을 한 번에 한 줄씩 실행하여
myapp.py
에서 생성된 테이블을 database.db
로 가져옵니다.from myapp import db
db.create_all()
이제 테이블
users
이 데이터베이스에 생성되었습니다.등록.
웹 사이트 사용자가 아직 계정이 없으면 로그인이 허용되지 않습니다. 따라서 사용자가 로그인하려면 먼저 가입 페이지를 사용하여 계정이 생성됩니다. this 코드를 사용하여
signup.html
라는 등록 페이지를 만듭니다. FlaskAuthSys 폴더에 있는 templates라는 폴더에 이 html 파일을 저장합니다.myapp.py
파일로 돌아가서 아래 코드로 등록 인스턴스를 생성하여 저장을 위해 데이터를 수신하는 방법을 지정합니다.class RegisterForm(FlaskForm):
username = StringField('username', validators=[InputRequired(), Length(min=4, max=20)])
password = PasswordField('password', validators=[InputRequired(), Length(min=8, max=80)])
email = StringField('email', validators=[InputRequired(), Email(message='Invalid Email'), Length(max=50)])
그런 다음 다음 코드로 가입 섹션을 업데이트합니다.
@myapp.route('/signup', methods=['GET','POST'])
def signup():
form = RegisterForm()
if form.validate_on_submit():
new_users = Users(username=form.username.data, email=form.email.data, password=form.password.data)
db.session.add(new_users)
db.session.commit()
return '<h1>New user has been created!</h1>'
return render_template('signup.html', form = form)
지금 가입 섹션이 완료되었습니다.
로그인.
테이블이 이미 생성되어 있기 때문에 간단합니다.
templates
라는 html 파일을 login.html
에 만듭니다. Here은 내 로그인 페이지입니다.myapp.py
Python 페이지에서 다음 코드를 사용하여 로그인 인스턴스를 만듭니다.class LoginForm(FlaskForm):
username = StringField('username', validators=[InputRequired(), Length(min=4, max=20)])
password = PasswordField('password', validators=[InputRequired(), Length(min=8, max=80)])
다음과 같이 로그인 코드를 업데이트합니다.
@myapp.route('/login', methods=['GET','POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
users = Users.query.filter_by(username=form.username.data).first()
if users:
if users.password == form.password.data:
login_user(users)
return redirect(url_for('dashboard'))
return '<h1> Invalid username or password</h1>'
return render_template('login.html', form = form)
여기까지 등록 및 로그인이 처리되었습니다. 이 프로젝트의 나머지 코드는 이 GitHub 저장소FlakHostedAuthSys에 있습니다. 이 기사를 읽어 주셔서 감사합니다. twitter @에서 저를 찾으세요. 댓글 섹션에 댓글을 남겨주세요. 좋은 하루에요:)
Reference
이 문제에 관하여(웹 개발을 위한 Python 마스터하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/injili/mastering-python-for-web-development-43k2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)