# 从app文件中导入这个Flask对象app
import re
from flask import redirect, render_template, request, url_for, session, Response
from werkzeug.datastructures import Headers
from app import app, db
from app.decorators import login_required
from app.models import User,Blog
import os
@app.route("/")
def show_main_page():
return render_template("show_main_page.html")
@app.route("/login/", methods=["GET", "POST"])
def login():
if request.method == "GET":
return render_template("login.html")
else:
# 获取登陆输入的数据
telephone = request.form.get('telephone')
password = request.form.get('password')
# 查找数据库中表数据进行比对
user = User.query.filter(User.telephone == telephone, User.password == password).first()
if user:
# 保存cookie信息 31天内不用重复登陆
session['user_id'] = user.id
session.permanent = True
return render_template('logined.html')
else:
routes_login_warning = "手机号码或密码错误,请重新"
return render_template("login.html", routes_login_warning=routes_login_warning)
@app.route("/register/", methods=["GET", "POST"])
def register():
if request.method == "GET":
return render_template("register.html")
else:
# 获取表单数据
telephone = request.form.get("telephone")
email = request.form.get("email")
password1 = request.form.get("password1")
password2 = request.form.get("password2")
# 手机号码验证,如果数据库中不存在 就允许注册
user = User.query.filter(User.telephone == telephone)
if user:
routes_register_warning = "该号码已经被注册,请重新"
return render_template("register.html", routes_register_warning=routes_register_warning)
else:
# 两次输入的密码相等才可以
if password1 != password2:
password_error = "两次密码不相等,请重新输入"
return render_template("register.html", password_error=password_error)
else:
# 添加到数据库
user = User(telephone=telephone, email=email, password=password1)
db.session.add(user)
db.session.commit()
# 注册成功添加电话号码到session
session['telephone'] = telephone
# 注册成功,重定向跳转页面到login
login_url = url_for("login")
return redirect(login_url)
@app.route("/logined/", methods=["GET", "POST"])
def logined():
if request.method == "GET":
return render_template('logined.html')
else:
pass
@app.route('/logout')
def logout():
# 删除cookie信息
session.pop('user_id')
# 返回登陆界面
login_url = url_for('login')
return redirect(login_url)
@app.route('/publish/', methods=["GET", "POST"])
def publish():
if request.method == 'GET':
return render_template('publish.html')
else:
blog_title=request.form.get('title')
blog_content=request.form.get('content')
#添加到数据库中
blog = Blog(title=blog_title, content=blog_content)
db.session.add(blog)
db.session.commit()
return redirect(url_for('articles'))
@app.route('/articles/')
def articles():
context={
'blogs':Blog.query.all()
}
return render_template('articles.html',**context)
@app.route('/about', methods=['GET', 'POST'])
def about():
if request.method == "GET":
return render_template('about.html')
else:
pass
@app.route('/blog-center')
def index():
return render_template('index.html')
@app.route("/404")
def invalid():
return render_template("404.html")
# 博客发布设置登陆限制
@app.route('/has_logined')
@login_required
def login_required():
return render_template('publish.html')
# 上下文钩子函数(全局变量)
@app.context_processor
def my_context_processer():
# 如果登录了,就能获取sesson中的数据
user_id = session.get('user_id')
if user_id:
# 与数据库中的数据进行比对
user = User.query.filter(User.id == user_id).first()
if user:
# 返回用户
return {'user': user}
return {}
没有合适的资源?快使用搜索试试~ 我知道了~
flask所写个人博客
共73个文件
css:15个
html:11个
py:9个
需积分: 50 31 下载量 15 浏览量
2019-07-24
17:49:01
上传
评论 6
收藏 24.34MB 7Z 举报
温馨提示
python所写 flask个人博客。项目。。 效果图见该博文最后https://blog.csdn.net/weixin_43919632/article/details/96478432
资源推荐
资源详情
资源评论
收起资源包目录
flask-blog.7z (73个子文件)
flask-blog
config.py 344B
run.py 235B
.idea
misc.xml 294B
flask-test.iml 524B
workspace.xml 31KB
inspectionProfiles
Project_Default.xml 2KB
modules.xml 279B
__pycache__
config.cpython-37.pyc 562B
run.cpython-37.pyc 211B
app
routes.py 4KB
manage.py 646B
migrations
env.py 3KB
alembic.ini 770B
script.py.mako 494B
__pycache__
env.cpython-37.pyc 2KB
versions
__pycache__
622b5028e300_.cpython-37.pyc 1KB
622b5028e300_.py 1KB
README 38B
decorators.py 408B
__init__.py 435B
models.py 1KB
__pycache__
routes.cpython-37.pyc 4KB
models.cpython-37.pyc 1KB
__init__.cpython-37.pyc 406B
decorators.cpython-37.pyc 622B
templates
show_main_page.html 7KB
index.html 6KB
about.html 6KB
logined.html 403B
video.html 556B
articles.html 693B
register.html 1KB
login.html 803B
404.html 57B
base.html 3KB
publish.html 862B
static
images
dhl.jpg 5KB
banner.jpg 141KB
cqupt.JPG 45KB
twitter.png 4KB
github.png 2KB
about_me.jpg 258KB
hollow.ico 5KB
fancybox_sprite@2x.png 6KB
blog.png 1KB
js
jquery-2.2.3.min.js 84KB
highlight.pack.js 56KB
plyr.js 37KB
vegas.min.js 9KB
jquery.fancybox-thumbs.js 4KB
random.js 4KB
jquery.fancybox.pack.js 23KB
jquery.mousewheel.pack.js 1KB
index.js 0B
videos
CQUPT.mp4 23.89MB
css
plyr.css 13KB
vegas.min.css 12KB
person_manage.css 75B
jquery.fancybox-thumbs.css 735B
index.css 1KB
logined.css 2B
font-awesome.min.css 30KB
highlight-railscasts.css 1KB
iconfont
iconfont.svg 14KB
iconfont.woff 8KB
iconfont.eot 12KB
iconfont.css 1KB
all_articles.css 362B
publish.css 166B
jquery.fancybox.css 5KB
random.css 11KB
base.css 197B
login_register.css 143B
共 73 条
- 1
资源评论
Java川
- 粉丝: 70
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功