#-*- coding: utf-8 -*- from flask import Flask,request,render_template,redirect,url_for,session from flask_sqlalchemy import SQLAlchemy import sqlconnect from functools import wraps from datetime import datetime app = Flask(__name__) app.config.from_object(sqlconnect)#app鏈接數據庫 db = SQLAlchemy(app) class User(db.Model): __tablename__ ='user1' 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) #againpass = db.Column(db.String(20), nullable=False) class Question(db.Model): __tablename__='question' id = db.Column(db.Integer,primary_key=True,autoincrement=True) author_id = db.Column(db.Integer,db.ForeignKey('user1.id')) 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 = db.relationship('User', backref=db.backref('questions')) class Trip(db.Model): __tablename__='trips' id = db.Column(db.Integer,primary_key=True,autoincrement=True) author_id = db.Column(db.Integer,db.ForeignKey('user1.id')) ttitle = db.Column(db.String(100),nullable=False) loca = db.Column(db.String(100),nullable=False) feeling =db.Column(db.Text,nullable=False) creat_time = db.Column(db.DateTime,default=datetime.now) author = db.relationship('User', backref=db.backref('trips')) db.create_all() #增長 user = User(username ='qqqqqq',password ='qqqqqq') db.session.add(user) db.session.commit() #查找 # user = User.query.filter(User.username =='xxxxx1').first() # user.password ='123456' # user.againpass='123456' # print(user.id,user.username,user.password) #刪除 # user = User.query.filter(User.username =='xxxxx1').first() # db.session.delete(user) # db.session.commit() @app.route('/') def first(): context={ 'visit':Trip.query.all() } return render_template("first.html",**context) def login_re(func): @wraps(func) def wrapper(*args,**kwargs): if session.get('user'): return func(*args,**kwargs) else: return redirect(url_for('sign_in')) return wrapper @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('first')) @app.route("/login/",methods=['GET','POST']) def sign_in(): if request.method =='GET': return render_template("sign_in.html") else: name = request.form.get('name') passw = request.form.get('password') user = User.query.filter(User.username == name).first() #判斷用戶名是否存在 if user: #判斷密碼是否正確 if user.password == passw: session['user']=name#記住用戶名 return redirect(url_for('first')) else: return u'密碼錯誤!' else: return u'不存在該用戶名!' @app.route("/regiter/",methods=['GET','POST']) def sign_up(): if request.method == 'GET': return render_template("sign_up.html") else: name = request.form.get('newname') passw = request.form.get('newpass') samename = User.query.filter(User.username == name).first() if samename: return u'username existed!' else: # 將用戶名和密碼存入數據庫 users =User(username = name ,password = passw) db.session.add(users) db.session.commit() return render_template("sign_in.html")#註冊成功後跳轉到登陸界面 @app.route("/question/",methods=['GET','POST']) @login_re def question(): if request.method=='GET': return render_template("wenda.html") else: wenti1 = request.form.get('q') # wenti2 = wenti1.decode("gbk").encode("utf-8") xiangqin1 = request.form.get('d') # xiangqin2 = xiangqin1.decode("gbk").encode("utf-8") questions = Question(title =wenti1,detail = xiangqin1) db.session.add(questions) db.session.commit() return render_template("first.html") @app.route("/trip/",methods=['GET','POST']) @login_re def trip(): if request.method=='GET': return render_template("trip.html") else: ttitle = request.form.get('biaoti') location = request.form.get('locat') feel = request.form.get('feel') trips = Trip(ttitle =ttitle,loca = location,feeling=feel) db.session.add(trips) db.session.commit() return render_template("first.html") @app.route('/tripdetial/') def td(): return render_template("tripdetial.html") if __name__ == '__main__': app.run(debug=True)
{% extends 'base.html' %} {% block title %} 首頁 {% endblock %} {% block head %} <link href="{{ url_for('static',filename='zz.css') }}" rel="stylesheet" type="text/css"> {% endblock %} {% block main %} <body bgcolor="#696969"> <ul class="trip-list" > {% for t in visit %} <li class="trip"> <span class="" aria-hidden="true"></span> <a class="picture"> <img src="../static/image/tx1.png"> </a> <a href="http://127.0.0.1:5000/tripdetial">{{ t.author.username }}</a> <span class="createtime">{{ t.creat_time }}</span> <br> <br> <a href="http://127.0.0.1:5000/tripdetial">{{ t.ttitle }}</a> <p class="">{{ t.detial }}</p> <p class="location">{{ t.loca }}</p> </li> {% endfor %} </ul> </body> {% endblock %}
{% extends 'base.html' %} {% block title %} {% endblock %} {% block head %} <link href="{{ url_for('static',filename='zz.css') }}" rel="stylesheet" type="text/css"> {% endblock %} {% block main %} <body bgcolor="#696969"> <div class=""> <a href="#">username</a> <span class="createtime">create_time</span> <p class="location">location</p> </div> <HR align=center width=1500 color=#987cb9 SIZE=1> <div> <p class="#">title</p> <br> <p class="">detial</p> </div> </body> {% endblock %}