from flask import Flask,render_template,request,redirect,url_for,session
from flask_sqlalchemy import SQLAlchemy
import config
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)
# db.create_all()
@app.route('/')
def base():
return render_template('base.html')
@app.route('/base2')
def base2():
return render_template('base2.html')
@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
return redirect(url_for("base2"))
else:
return u'用户密码错误!'
else:
return u'用户不存在!'
@app.route('/res/',methods=['GET','POST'])
def res():
if request.method =='GET':
return render_template('res.html')
else:
usern = request.form.get('name')
passw = request.form.get('password')
user = User.query.filter(User.username==usern).first()
if user:
return 'username existed'
else:
user= User(username=usern,password=passw)
db.session.add(user)
db.session.commit()
return redirect(url_for('login'))
@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('base'))
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}NEWS & JIANSHU{% endblock %}</title>
{% block head %}{% endblock %}
</head>
<body class="bg11">
<nav>
<a class="logo" href="http://www.jianshu.com/">
<img src="http://cdn2.jianshu.io/assets/web/logo-58fd04f6f0de908401aa561cda6a0688.png" alt="Logo"></a>
<a href="http://127.0.0.1:5000/base2">首页</a>
{% if username %}
<a href="#">{{ username }}</a>
<a href="{{ url_for('logout') }}">注销</a>
{% else %}
<a href="{{ url_for('login') }}">登陆</a>
<a href="{{ url_for('res') }}">注册</a>
{% endif %}
<input type="text"name="search">
<button type="submit">搜索</button>
</nav>
<hr>
{% block main %}{% endblock %}
</body>
</html>