python随机函数random、画、星轨_期末作品检查 - osc_i2b7a3j0的个人空间 - OSCHINA - 中文开源技术交流社区...

1.个人学期总结

本人在这学期中学习了管理信息系统这门科目,这门科目主要讲解了基于Python的Flask框架web建设项目。Python,是一种面向对象的解释型计算机程序语言,由荷兰人于1989年发明,第一个公开发行版发行于1991年。Python语言具有很多优点,首先,Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。再者,Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译,其中很重要的一项就是Python的缩进规则。

在前期Python的基础课程中学习到了turtle库的基础练习、字符串的基本操作、凯撒密码 、GDP格式化输出、99乘法表、中英文词频统计、和datetime处理日期和时间等等基础学习。

中期,开始学习用html元素制作web网页,观察常用网页的HTML元素,在实际的应用场景中,用已学的标签模仿制作。制作自己的导航条,认识css的盒子模型,用div等元素布局形成html文件。完成了登录与注册页面的html+css+js, 夜间模式的开启和关闭,制作网站网页共有元素的父模板html,包括顶部导航,中间区块划分,底部导航,底部说明等。汇总相关的样式形成独立的css文件,使用 js代码形成独立的js文件,形成完整的base.html+css+js。

后期,进行flask项目,理解flask项目主程序,使用装饰器,设置路径与函数之间的关系。加载静态文件,父模板的继承和扩展。连接mysql数据库,创建用户模型,通过用户模型,对数据库进行增删改查,完成登录、注册、发布评论等功能,继续对我们的项目进行完善。

完成以上步骤之后,一个网页就差不多完成了。但完成的网页是一个很简单的,所以希望在以后能制作出一个更完美的网页。

2.总结Python+Flask+MysqL的web建设技术过程,标准如下:

即是对自己所学知识的梳理

也可作为初学入门者的简单教程

也可作为自己以后复习的向导

也是一种向外展示能力的途径

Python+Flask+MysqL的web建设技术过程:

(1)注册页面的实现:

代码:

{% extends 'base.html' %}

{% block title %}注册{% endblock %}

{% block head %}

{% endblock %}

{% block main %}

用户名:
昵称:
密码:
再输密码:

注册

{% endblock %}

(2)登陆页面:

代码:

{% extends 'base.html' %}

{% block title %}登录{% endblock %}

{% block head %}

{% endblock %}

{% block main %}
用户名:
密码:

登录

取消

{% endblock %}

(3)首页页面:

代码:

{% extends 'base.html' %}

{% block title %}

首页

{% endblock %}

{% block head %}

{% endblock %}

{% block main %}

{#detail{{ question }}#}

浩瀚星空

{% endblock %}

(4)发布问答

代码:

{% extends 'base.html' %}

{% block title %}问答{% endblock %}

{% block head %}{% endblock %}

{% block main %}

{% endblock %}

(5)个人详情页面:

代码:

{% extends 'userbase.html' %}

{% block title %}

个人信息页

{% endblock %}

{% block head %}{% endblock%}

{% block user %}

全部问答

{% for foo in user.questions %}

{{ foo.title }}

{{ foo.detail }}

{{ foo.creat_time}}

{{ foo.author.username}}

{% endfor %}

全部评论

{% for foo in user.comments %}

{{ foo.title }}

{{ foo.detail }}

{{ foo.creat_time}}

{{ foo.author.username}}

{% endfor %}

{{ username }}个人信息

  • 用户:{{ user.username }}
    编号:{{ user.id }}
    昵称:{{ user.nickname }}
    文章篇数:{{ user.questions|length }}

{% endblock %}

(6)个人用户父类模板代码:

{% extends 'base.html' %}

{% block title %}

个人中心

{% endblock %}

{% block head %}{#

{#.nav_ul li#}

{#list-style:none;#}

{#float: left;#}

{#margin: 10px;#}

{##}

{##}

{% endblock %}

{% block main %}

{{ user.username }}

全部问答 全部评论 个人信息
{% block user %}

{% endblock %}

{% endblock %}

(7)父类模板代码:

{% block title %}首页{% endblock %}

{% block head %}{% endblock %}

{##}

(8)config.py代码:

importos

SECRET_KEY= os.urandom(24)

SQLALCHEMY_DATABASE_URI= 'mysql+pymysql://root:123456@127.0.0.1:3306/misdb?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS= False

(9)tianwen.py代码:

from flask importFlaskfrom flask_sqlalchemy importSQLAlchemyimportconfigfrom flask importFlask, render_template, request, redirect, url_for,sessionfrom functools importwrapsfrom datetime importdatetimefrom sqlalchemy importor_, and_

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(20), nullable=False)

nickname= db.Column(db.String(20))

db.create_all()#问题页的数据库

classQuestion(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)

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('questions'))

db.create_all()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()#user=User(username='mis1',password='11111')#db.session.add(user)#db.session.commit()

@app.route('/')defbase():return render_template('base.html')#调用数据库把用户评论放在首页

@app.route('/index/')defindex():

context={'questions':Question.query.order_by('-creat_time').all()

}return render_template('index.html',**context)

@app.route('/login/',methods=['GET','POST'])deflogin():if request.method == 'GET':return render_template('login.html')else:

usern= request.form.get('username')

passw= request.form.get('password')

user= User.query.filter(User.username ==usern).first()ifuser:if user.password==passw:

session['user'] =usern

session['userid'] =user.id

session.permanent=Truereturn redirect(url_for('base'))else:return u'password error'

else:return u'password is not existed'@app.route('/regist/',methods=['GET','POST'])defregist():if request.method=='GET':return render_template('regist.html')else:

usern=request.form.get('username')

passw=request.form.get('password')

nickn=request.form.get('nickname')

user=User.query.filter(User.username==usern).first()ifuser:return u'username existed'

else:

user=User (username=usern,password=passw,nickname=nickn)

db.session.add(user)

db.session.commit()return redirect(url_for('login'))defloginFirst(func):

@wraps(func)def wrapper(*args, **kwargs):if session.get('user'):return func(*args, **kwargs)else:return redirect(url_for('login'))returnwrapper

@app.route('/question/',methods=['GET','POST'])

@loginFirst#发布前登录,python装饰器

defquestion():if request.method=='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().id

question= Question(title=title, detail=detail, author_id=author_id)

db.session.add(question)

db.session.commit()return redirect(url_for('index'))#评论页的详细页

@app.route('/detail/')defdetail(question_id):

quest= Question.query.filter(Question.id ==question_id).first()return render_template('detail.html', ques=quest)#评论功能

@app.route('/comment/',methods=['POST'])

@loginFirst#发布前登录,python装饰器

defcomment():

detail= request.form.get('fabu')

author_id= User.query.filter(User.username == session.get('user')).first().id

quest_id=request.form.get('question_id')

pinglun= Comment(question_id=quest_id,detail=detail, author_id=author_id)

db.session.add(pinglun)

db.session.commit()return redirect(url_for('detail',question_id=quest_id))#个人信息页

@app.route('/usercenter//')

@loginFirst#发布前登录,python装饰器

defusercenter(user_id,tag):

user=User.query.filter(User.id==user_id).first()

context={'user':user

}if tag=='1':return render_template('user1.html',**context)elif tag=='2':return render_template('user2.html',**context)else:return render_template('user3.html',**context)

@app.context_processordefmycontext():

usern=session.get('user')ifusern:return{'username':usern}else:return{}

@app.route('/search/')defsearch():

qu=request.args.get('q')

ques=Question.query.filter(or_(Question.title.contains(qu),Question.detail.contains(qu))).order_by('-creat_time')return render_template('index.html', questions=ques)

@app.route('/logout/')deflogout():

session.clear()return redirect(url_for('index'))if __name__ == '__main__':

app.run(debug=True)

以上就是Python+Flask+MysqL的web建设技术过程,读者可以根据自己的需求修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值