前言
使用IDE:PyCharm
操作系统:Mac
Python的版本:3.6
我的邮箱:51263921@qq.com
交流群:372430835
说明:
本次课程的GitHub代码在最下面。
本次课程基于上个课程的代码,如果没看过的请先传送:
使用Python的瓶框架开发的Web网站系列课程(一)构建项目
使用Python的瓶框架开发的Web网站系列课程(二)注册功能
一、登录
本次课程主要实现登录,我们按照实际开发的流程,先看到登录页面,再尝试页面传值(也就是输入账号密码)到服务端,服务端校验和鉴权,并跳转页面。
1.1增加backend.account.views关于登录的代码
全路径:/myproject/backend/account/views.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
Created by liaoyangyang1 on 2018/8/22 上午9:40.
"""
from flask import Blueprint,request,render_template,jsonify,flash #第二课增加内容
from backend.models.UserModel import User
from backend.models import db
#账户的蓝图 访问http://host:port/account 这个链接的子链接,都会跳到这里
account = Blueprint('/account', __name__) #第二课增加内容
# 访问http://host:port/account/register 这个链接,就会跳到这里
@account.route('/register',methods=(["GET","POST"])) #第二课增加内容
#上面的链接,绑定的就是这个方法,我们给浏览器或者接口请求 一个json格式的返回
def register(): #第二课增加内容
if request.method == 'POST':
form = request.form
user = User(username=form['username'],email=form['email'],password=form['password'])
db.session.add(user)
db.session.commit()
return jsonify(form)
return render_template('/account/register.html')
@account.route('/login',methods=(["GET","POST"]))
def login(): #第三课内容
if request.method == "POST":
return jsonify(request.form)
return render_template('/account/login.html')
1.2增加html页面文件
全路径:/myproject/frontend/account/login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>INSPINIA | Login</title>
<link href="https://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.css" rel="stylesheet">
<link href="../stati