1.在首页添加显示问答的列表,并定义好相应的样式。

无序列表

<ul >

<li>Coffee</li>

<li>Tea</li>

<li>Milk</li>

</ul>

<ul class="list-group"><li class="list-group-item" ><a  class="author" href="">{{ user }}</a><br><a class="title"  href="">标题</a><br><span >发布时间 </span><p class="abstract">文章内容 </p></li></ul>

2. 用字典向index.html传递参数。

from flask import Flask, render_template,redirect,url_for,request,session
from flask_sqlalchemy import SQLAlchemy
from functools import wraps
from datetime import datetimeimport configapp = 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(20))class Question(db.Model):__tablename__='question'id = db.Column(db.Integer,primary_key=True,autoincrement=True)title = db.Column(db.String(100),nullable=False)detail = db.Column(db.Text,nullable=False)create_time = db.Column(db.DateTime,default=datetime.now())author_id = db.Column(db.Integer,db.ForeignKey('user.id'))author = db.relationship('User',backref=db.backref('question'))db.create_all()@app.route('/')
def index():#用字典向index.html传递参数context={'questions':'Why so lonely'}return render_template('index.html',**context)@app.route('/login/',methods=['GET','POST'])
def login():if request.method == "GET":return render_template("login.html")else:username = request.form.get("username")password = request.form.get("password")user = User.query.filter(User.username == username).first()if user:if user.password == password:session['user'] = usernamereturn redirect(url_for('login'))else:return '密码错误'else:return '用户名不存在'@app.context_processor
def mycontext():username = session.get('user')if username:return{'username':username}else:return{}@app.route('/logout/')
def logout():session.clear()return redirect(url_for('base'))@app.route('/regist/',methods=['GET','POST'])
def regist():if request.method == 'GET':return render_template("regist.html")else:username = request.form.get("username")password = request.form.get("password")user = User.query.filter(User.username == username).first()if user:return 'username existed.'else:user = User(username=username, password=password)db.session.add(user) #数据库,添加操作
            db.session.commit()return redirect(url_for('login'))#发布前需要登录,定义装饰器
def loginFirst(func):@wraps(func)def wrapper(*args,**kwargs):if session.get('user'):return func(*args,**kwargs)else:return redirect(url_for('login'))return wrapper@app.route('/question/',methods=['GET','POST'])
@loginFirst
def question():if request.methof=='GET':return render_template('question.html')else:title=request.form.get('title')detail=request.form.get('detail')author_id=User.query.filter(User.username==session.get('user')).first().idquestion=Question(title=title,detail=detail,author_id=author_id)db.session.ass(question)db.session.commit()return redirect(url_for('index'))if __name__ == '__main__':app.run(debug=True)import osSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/mis1201?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = FalseSECRET_KEY = os.urandom(24)

转载于:https://www.cnblogs.com/Green-/p/7941262.html

二十九、制作首页的显示列表相关推荐

  1. 制作首页的显示列表。

    1. 在首页添加显示问答的列表,并定义好相应的样式. 无序列表 <ul > <li>Coffee</li> <li>Tea</li> < ...

  2. 制作首页的显示列表(2017.11.29)

    1. 在首页添加显示问答的列表,并定义好相应的样式. 无序列表 <ul > <li>Coffee</li> <li>Tea</li> < ...

  3. 微信小程序从入坑到放弃二十九:一个小场景搞懂冒泡事件bindtap和catchtap的区别

    摘要: 在微信小程序中,bindtap事件会产生冒泡,若不加以拦截,会一直冒泡到顶端.在某些情况下,一次点击会触发若干点击事件.为了防止冒泡,使用catchtap即可解决问题.在有全屏半透明背景的弹出 ...

  4. SAP UI5 应用开发教程之二十九 - SAP UI5 的路由和导航功能介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  5. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十九:LCD模块

    实验二十九:LCD模块 据说Alinx 301支持 7"TFT,好奇的朋友一定疑惑道,它们3.2"TFT以及7"TFT等两者之间究竟有何区别呢?答案很简单,前者自带控制器 ...

  6. FreeSql (二十九)Lambda 表达式

    FreeSql 支持功能丰富的表达式函数解析,方便程序员在不了解数据库函数的情况下编写代码.这是 FreeSql 非常特色的功能之一,深入细化函数解析尽量做到满意,所支持的类型基本都可以使用对应的表达 ...

  7. 【零基础学Java】—final关键字与四种用法(二十九)

    [零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...

  8. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

    原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...

  9. OpenCV C++案例实战二十九《遥感图像分割》

    OpenCV C++案例实战二十九<遥感图像分割> 前言 一.准备数据 二.K-Means分类 三.效果显示 四.源码 总结 前言 本案例基于k-means机器学习算法进行遥感图像分割.主 ...

最新文章

  1. opencv配置(转)
  2. dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例
  3. 解决窗口属性兼容性问题的一些函数
  4. 这届产品经理也太太太太难了吧!
  5. vue+express 构建后台管理系统
  6. TemplateSyntaxError at XXXX或页面样式未生效
  7. 治病花了130万才明白:不要轻易买保险
  8. Linux谁访问这个内存,Linux中的直接内存访问
  9. 【Elasticsearch】es 电台 收听 笔记
  10. jmeter 聚合报告说明_jmeter之聚合报告
  11. matlab细胞数组类型建立及操作
  12. [TC]SRM615 div1 250 AmebaDiv1
  13. Python3 从零单排17_类的继承
  14. Burpsuite Professional安装及使用教程(抓包)
  15. 【推荐】无线WiFi信号测试软件WirelessMon
  16. [BUGKU] [MISC]旋转跳跃
  17. 面试题七 C/C++ 骑士营救公主 骑士只能向右或者向下移动,遇到陷阱就死了,求骑士营救公主的所有路线-程序员面试题
  18. 打开文件管理器并进行文件夹的复制、移动、删除、创建
  19. 模拟QQ心情图片上传预览
  20. Linux shell随手记——ps -ef

热门文章

  1. 深入探索多线程优化方法
  2. 华为鸿蒙系统支持什么手机_什么样的手机可以刷鸿蒙系统?看看你的手机支持吗?...
  3. python大游戏_玩游戏就能学Python?太炫酷了!
  4. 小女出世,暂停工作,全职照料大人小孩
  5. 95-50-020-java.nio.channels-NIO-NIO概览
  6. 95-30-050-java.util-LinkedHashMap
  7. 【Kafka】Kafka Tool 2 使用教程 SASL_PLAINTEXT
  8. 【Java】String hashCode 这个数字 31
  9. 20-10-025-安装-KyLin-2.6.0-单机版安装(MAC官网下载)成功
  10. 81-spark异常总结1