post模型的建立:
from datetime import datetime
class
posts
(db.model):
__tablename__ = 'posts'
id = db.column(db.integer, primary_key=true)
rid = db.column(db.integer, default=0)
content = db.column(db.text)
timestamp = db.column(db.datetime, default=datetime.utcnow)
# 新增外來鍵關聯,'表名.欄位'
uid = db.column(db.integer, db.foreignkey('users.id'))
__init__.py:
新增關聯表collections
from .user import user
from .posts import posts
# 使用者收藏帖子的中間關聯表,不需手動維護
collections = db.table('collections',
db.column('user_id', db.integer, db.foreignkey('users.id')),
db.column('posts_id', db.integer, db.foreignkey('posts.id')))
post表單的建立:
from flask_wtf import flaskform
from wtforms import textareafield, submitfield
from wtforms.validators import length
# 發表部落格表單
class
postsform
(flaskform):
# render_kw:渲染的字段的屬性字典
content = textareafield('', render_kw=, validators=[length(3, 140, message='只能在3~140個字元之間')])
submit = submitfield('發表')
__init__.py:
from .user import registerform, loginform, iconform
from .posts import postsform
user模型的更新:
class
user
(usermixin, db.model):
....
posts = db.relationship('posts',backref='user', lazy='dynamic')
資料庫遷移,更新:
python manage.py db migrate
python manage.py db upgrade
main檢視函式的更新:
from flask import blueprint,render_template,redirect,url_for,flash
from flask_login import current_user
main = blueprint('main', __name__)
@main.route('/', methods=['get', 'post'])
defindex
(): form = postsform()
if form.validate_on_submit():
if current_user.is_authenticated:
u = current_user._get_current_object()
p = posts(content=form.content.data,user=u)
db.session.add(p)
flash('post success')
return redirect(url_for('main.index'))
else:
flash('please login')
return redirect(url_for('user.login'))
posts = posts.query.filter_by(rid=0).order_by(posts.timestamp.desc())
return render_template('main/index.html',form=form,posts=posts)
main/index.html更新:
首頁
}h1>
}class="media">
class="media-left">
href="#">
class="media-object"
src="}"
alt="icon">
a>
div>
class="media-body">
style="float: right">發表於:
}div>
class="media-heading">
}h4>
}
Flask學習筆記 使用Flask實現表單開發
使用html實現的表單 用flask實現相同功能的表單 coding utf 8 from flask import flask,request,render template,redirect from wtforms import form,textfield,passwordfield,val...
flask的基本使用
匯入flask類 from flask import flask 檢視函式 通過裝飾器將路由映到檢視函式 flask程式使用run方法啟動web伺服器 if name main 程式載入配置 路由傳參 使用尖括號傳參 動態引數 檢視函式也要有對應的引數接收 重定向 redirect 後跟url路徑,...
flask的for迴圈使用
目錄結構 for template.py的 如下 from flask import flask,render template def for template 字典for迴圈資料 user 列表for迴圈資料 l 北京 上海 深圳 廣州 列表 字典巢狀for示例 students return ...