一、个人学期总结
通过一学期的学习,我学会了使用Flask框架搭建一个web service,并在其中加上一些简单的css,js,html等。为数18周的信息管理系统的学习让我感受颇深,每学一点新内容,老师都发布作业给我们完成,这对于我们是一种知识巩固的好方法,让我们及时发现没有理解的地方,并及时问老师和同学,及时掌握好新内容。学习过程中我也会自己通过网络学习简单的css的设计,一点一点修改自己页面的样式等等。
二、总结Python+Flask+MysqL的web建设技术过程
1、使用软件
Python3.5+mysql5.7+pycharm2017.2
2、数据库
(1)、连接数据库
importos
SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:@127.0.0.1:3306/hog?charset=utf8'SQLALCHEMY_TRACK_MODIFICATTONS=False
SECRET_KEY= os.urandom(24)
(2)、创建数据库
app = Flask(__name__)
app.config.from_object(config)
db=SQLAlchemy(app)#创建用户模型
classUser(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(200), nullable=False) #内部使用
@propertydef password(self):#外部使用,取值
returnself._password
@password.setterdefpassword(self, row_password):
self._password=generate_password_hash(row_password)def check_password(self, row_password):#外部使用,赋值
result =check_password_hash(self._password, row_password)returnresultclassQuestion(db.Model):__tablename__ = 'question'id= db.Column(db.Integer, primary_key=True, autoincrement=True)
question= db.Column(db.String(100), nullable=False)
questionDetail= db.Column(db.Text, nullable=False)
creat_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'))#User类添加question属性,定义反向关系,这一属性可以访问Question模型
classComment(db.Model):
_tablename_='comment'id=db.Column(db.Integer,primary_key=True,autoincrement=True)
author_id=db.Column(db.Integer,db.ForeignKey('user.id'))
question_id=db.Column(db.Integer,db.ForeignKey('question.id'))
detail=db.Column(db.Text,nullable=False)
creat_time=db.Column(db.DateTime,default=datetime.now)
question=db.relationship('Question',backref=db.backref('comments',order_by=creat_time.desc))
author=db.relationship('User',backref=db.backref('comments'))
db.create_all()
3、页面设计
(1)注册&登录界面
js文件: onclick函数return True时才提交表单,return False时不提交表单。
html文件:
中设置 action和method="post"中设置 name
οnclick="return fnLogin()"
主py文件中:
from flask import request, redirect, url_for
@app.route('/regist/', methods=['GET', 'POST’])
设置`SECRET_KEY`
`session`:增加用户名`session['username']=`username
主要代码:
html:
欢迎注册
输入用户名: