웹 개발을 위한 Python 마스터하기

웹 개발은 웹 사이트 구축 및 유지 관리로 정의됩니다. 이 작업을 수행할 때 웹 개발자는 데이터베이스를 설계, 프로그래밍, 게시 및 유지 관리합니다. 프로그래밍 실습은 html(마크업 언어), css 및 javascript를 사용하여 수행됩니다. 파이썬도 사용할 수 있습니다. Python에는 웹 사이트를 개발하는 데 사용되는 Django 및 Flask와 같은 몇 가지 프레임워크가 있습니다. 이 기사에서는 Windows PC에서 Python 프레임워크인 Flask를 사용하여 인증 시스템을 개발하는 방법을 문서화합니다. 배포된 웹 사이트에 대한 링크는 HERE 입니다.

환경 설정.



첫 번째 단계는 플라스크 앱을 개발할 플라스크 환경을 설정하는 것입니다. 원하는 위치에 폴더를 만들고 이름을 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 @에서 저를 찾으세요. 댓글 섹션에 댓글을 남겨주세요. 좋은 하루에요:)

좋은 웹페이지 즐겨찾기