使用Flask實現帖子的建模

2021-08-17 10:27:27 字數 2738 閱讀 9998

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 ...