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)
nickname=db.Column(db.String(50))
#db.create_all()
#查
#user = User.query.filter(User.username == 'sk').first()
#print(user.id,user.password)
#改
#user = User.query.filter(User.username == 'mis1234').first()
#user.password='888888'
#user.username='sk'
#db.session.commit()
#print(user.id,user.password)
#删
#user = User.query.filter(User.username=='sk').first()
#db.session.delete(user)
#db.session.commit()
#增
#user = User(username='mis1234',password='111111')
#db.session.add(user)
#db.session.commit()
@app.route('/')
def base():
return render_template('base.html')
@app.route('/index/')
def index():
return render_template('index.html')
@app.route('/register/',methods=['GET','POST'])
def register():
if request.method=='GET':
return render_template('register.html')
else:
usern = request.form.get('username')
nickn = request.form.get('nickname')
passw = request.form.get('password')
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'))
@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 'password error.'
else:
return 'username is not existed.'
@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'))
@app.route('/question')
def question():
return render_template('question.html')
if __name__ == '__main__':
app.run()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}首页{% endblock %}</title>
<script src="../static/js/base.js"></script>
<link rel="stylesheet" type="text/css" href="../static/css/base.css">
</head>
<body id="myBody">
{% block head %}{% endblock %}
<div class="a">
<nav>
<a href="{{ url_for('index') }}">首页</a>
<a lass="navi" href="{{ url_for('question') }}">发布问答</a>
<input type="text" name="search">
<button type="submit">查找</button>
<img class="navi" id="on_off" onclick="mySwitch()" src="http://www.runoob.com/images/pic_bulbon.gif " width="20px">
<div class="navi">
{% if username %}
<a href="#">{{ username }}</a>
<a href="{{ url_for('logout') }}">注销</a>
{% else %}
<a href="{{ url_for('login') }}">登录</a>
<a href="{{ url_for('register') }}">注册</a>
{% endif %}
</div>
<a class="navi" href="">收藏</a>
</nav>
</div>
{% block main %}{% endblock %}
</body>
</html>