标签:jpg == sso incr wrap tools alt integer temp
{% extends ‘basic.html‘ %} {% block title %}登陆{% endblock %} {% block head %} <link rel="stylesheet" type="text/css" href="{{ url_for(‘static‘,filename=‘../staticcss/20.css‘) }}"> <link rel="stylesheet" type="text/css" href="{{ url_for(‘static‘,filename=‘../staticcss/200.css‘) }}"> <link rel="stylesheet" type="text/css" href="{{ url_for(‘static‘,filename=‘../static/css/2000.css‘) }}"> <link rel="stylesheet" type="text/css" href="{{ url_for(‘static‘,filename=‘../static/css/2000.css‘) }}"> <script src="{{url_for(‘static‘,filename=‘../static/js/39.js‘) }}" type="text/css"></script> {% endblock %} {% block index %} </head> <body class="abc"> <p>{{ user }}context</p> <ul class="list-group"> {% for foo in question %} <li class="list-group-item"> <span class="glyphicon glyphicon-leaf" aria-hidden="true"></span> <a href="#">{{ foo.author.username }}</a> <br> <a href="#"title>{{ foo.title }}</a> <br> <span class="badge">{{ foo.creat_time }}</span> <p style="text-indent: 18px">{{ foo.detail }}</p> </li> </ul> {% endfor %} <div> <div class="img"> <a href={{ url_for(‘login‘) }}> <img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4071790924,2914289697&fm=27&gp=0.jpg"> </a> <div class="desc"><a href={{ url_for(‘login‘) }}>登陆</a> </div> </div> <div class="img"> <a href={{ url_for(‘rege‘) }}> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1508478993164&di=21005bc9d7cbc500390e5b62c3b859a7&imgtype=0&src=http%3A%2F%2Fwapfile.desktx.com%2Fpc%2F161122%2Fbigpic%2F5832b76c05a7e.jpg"> </a> <div class="desc"><a href={{ url_for(‘rege‘) }}>注册</a> </div> </div> </div> <div class="clearfloat"> <img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4071790924,2914289697&fm=27&gp=0.jpg"> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1508478993164&di=21005bc9d7cbc500390e5b62c3b859a7&imgtype=0&src=http%3A%2F%2Fwapfile.desktx.com%2Fpc%2F161122%2Fbigpic%2F5832b76c05a7e.jpg"> </div> </body> </html>{% endblock %}
from flask_sqlalchemy import SQLAlchemy import config from flask import Flask,render_template,request,redirect, url_for,session from functools import wraps from datetime import datetime app = Flask(__name__) app.config.from_object(config) db=SQLAlchemy(app) class User(db.Model): __tablename__ = ‘User‘ id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Column(db.String(20),nullable=False) password = db.Column(db.String(20),nullable=False) nickname = db.Column(db.String(20)) class Question(db.Model): __tablename__ = ‘question‘ id = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(100),nullable=False) detail = db.Column(db.Text,nullable=False) creat_time=db.Column(db.DateTime,default=datetime.now) author_id=db.Column(db.Integer,db.ForeignKey(‘User.id‘)) author= db.relationship(‘User‘,backref=db.backref(‘question‘)) db.create_all() @app.route(‘/‘) def index(): context = { ‘question‘:Question.query.all() } return render_template(‘index.html‘,**context) @app.route(‘/login/‘,methods=[‘GET‘,‘POST‘]) def login(): if request.method == ‘GET‘: return render_template(‘login.html‘) else: usern = request.form.get(‘username‘) passw = request.form.get(‘password‘) user = User.query.filter(User.username == usern).first() if user: if user.password==passw: session[‘user‘] = usern session.permanent = True return redirect(url_for(‘index‘)) else: return u‘password error‘ else: return u‘password is not existed‘ @app.route(‘/rege/‘,methods=[‘GET‘,‘POST‘]) def rege(): if request.method ==‘GET‘: return render_template(‘rege.html‘) else: usern = request.form.get(‘username‘) passw = request.form.get(‘password‘) nickn = request.form.get(‘nickname‘) user = User.query.filter(User.username ==usern).first() if user: return ‘username.existed.‘ else: user1 = User(username=usern,password=passw,nickname = nickn) db.session.add(user1) db.session.commit() return redirect(url_for(‘login‘)) def loginFrist(func): @wraps(func) def wrapper(*args, **kwargs): if session.get(‘user‘): return func(*args, **kwargs) else: return redirect(url_for(‘login‘)) return wrapper @app.route(‘/question/‘, methods=[‘GET‘, ‘POST‘]) @loginFrist def question(): if request.method == ‘GET‘: return render_template(‘question.html‘) else: title = request.form.get(‘title‘) detail = request.form.get(‘detail‘) author_id = User.query.filter(User.username == session.get(‘user‘)).first().id question = Question(title=title, detail=detail, author_id=author_id) db.session.add(question) db.session.commit() return redirect(url_for(‘index‘)) @app.context_processor def mycontext(): usern=session.get(‘user‘) if usern: return{‘username‘:usern} else: return{} @app.route(‘/logout/‘) def logout(): session.clear() return redirect(url_for(‘index‘)) if __name__=="__main__": app.run(debug=True)
标签:jpg == sso incr wrap tools alt integer temp
原文地址:http://www.cnblogs.com/dujiacheng789/p/7992205.html