一、系统概要说明:
通过使用Python、Flask、Mysql的web建设技术,开发一个文章发布的网站,从中能够实现文章的发布和列表显示、文章的评论、文章的点赞、文章的分类筛选、文章的特定搜索以及发布者个人信息的完善,头像的上传、登录、注册、注销等功能。
二、网站结构设计:
首先先建立表,用户登录表、收藏表、评论表、问题发布的表,见图1.然后设计主网页base.html,主网页被其他功能的网页所继承,起到一个基础作用,再而进行其他功能相关网页的设计,例如个人中心,个人信息,评论,注册登录、密码修改、头像上传、热门文章等网页的继承,见图2。
三、模块详细设计:
1、首页关键代码,包括导航、文章、文章分类、文章关键字搜索内容部分
{ % else %} { % endif %} 2、登录注册页
发布问题
标题:{ {ques.title}} { {ques.author.username}} { {ques.create_time}}
内容:{
{ques.detail}}评论:({ { ques.comments|length }})
- { %for foo in ques.comments%}
- { {foo.author.username}} { {foo.create_time}}
{
{foo.detail}} { %endfor%}
{
{ foo.detail[0:50] }}...全部评论
{ % for com in comment %}{
{ com.detail }}名称: { { user2.username }}
问题数: { { questions|length }}
评论数: { { comment|length }}
四、数据库设计:
用户id保存数据库中class User(db.Model): __tablename__ = 'user' # 建立一个表user id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(20), nullable=False) _password = db.Column(db.String(200), nullable=False) say = db.Column(db.String(50)) icon = db.Column(db.String(50)) collection = db.relationship('Question', secondary=Collection, backref=db.backref('user', lazy='dynamic'), lazy='dynamic') @property def password(self): # 外部使用 return self._password @password.setter def password(self, row_password): self._password = generate_password_hash(row_password) def check_password(self, row_password): result = check_password_hash(self._password, row_password)return result
五、系统实现的关键算法与数据结构:
一、 导入所需要的开发软件from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configfrom functools import wrapsfrom datetime import datetimefrom sqlalchemy import or_from werkzeug.security import generate_password_hash, check_password_hash二、 实现各个网页内部功能的前提代码app=Flask(__name__)app.config.from_object(config)db=SQLAlchemy(app)