期末作品检查

个人期末总结:

           在本学期中,杜云梅老师带领我们学习了python这一课程。在这几个月的学习过程中,我们由一开始的什么都不懂到后面能基本实现基于Python的Flask框架web建设项目,这都离不开杜老师对我们的一步步指导。python是编程里的一门语言,相对比较独立,不依赖于其他课程的学习基础,所以上手相对容易,老师从简单的入门开始教我们,有利于我们代码薄弱的同学学习,从开始简单的几句代码开始学起,有几句代码实现一个动画效果,从这可以体会到Python语言的简见明了,易学易操作。python有很多功能强大的第三方库,减轻了很多我们打代码的负担。老师上课的每节课目标分明清晰,这让我们清楚地知道我们每节课要学习什么。Python刚开始的易学减轻了我们对编程的恐惧,这让我们有信心去学这门课程。在学习的过程,也会遇到难题,但通过看老师的视频截图,再跟同学交流学习,基本上就能解决困难了。虽然老师作业的困难能解决,但离真正有技术的掌握还有有点远,因为敲完代码后掌握知识的时间只有一段时间,从遗忘曲线可以知道,时间过得越久,遗忘的程度也就越多,所以要通过不断地反复地练习,不断地巩固,才能更好的掌握这门语言。 

           学习完这门课程后,使我受益匪浅并有以下感受:1.对于我们这些初学入门者,应该找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么,只有这样才能更好的提升自己的能力;2.用老师上课的作业的实际项目练手,这样有助于自己理解书本上的知识点。这样效果要好很多。3.遇到问题解决不了要积极向请教,或者找几个同学一起研究学习,这样不但可以解决遇到的问题还可以发现自己的不足。4.要学会搜索,多去网上找资源,学会如何更多途径地解决问题,在网上找资源的时候我发现了一个很有用的网站,叫菜鸟教程(http://www.runoob.com),里面很多基本的python用法都有介绍,这对我的帮助很大。

 

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

           python,是一种面向对象的解释型计算机程序设计语言,它语法简洁清晰,具有丰富和强大的库;Flask,是一个使用python编写的轻量级 Web 应用框架,使用简单的核心,用 extension 增加其他功能。Mysql,是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。

           这个学期我们学习了基于Python的Flask框架web建设项目。我们从了解turtle库开始,练习条件、循环、函数定义,并画出了五角星、同心圆、太阳花、中国国旗等。学习了字符串的基本操作,学会输入字符串,输出代码计算后的结果,凯撒密码、GDP格式化输出、九九乘法表等简单操作。利用python进行英文词汇统计,组合数据类型练习,用文件形式实现完成的英文词频统计、中文词频统计。利用datetime处理日期和时间,将字符串转化成imestamp与timedelta,了解管理信息系统概念与基础,理解数据存储的方式如字典、列表、元祖、集合.。学习web,学会认识URL,会观察网站网址,区分组成部分,练习用标签制作简单的页面,用html制作web页面,练习使用下拉列表选择框、无序列表、有序列表、定义列表。开始制作自己的导航条(HTML头部元素:<base>  定义了页面链接标签的默认链接地址。<style>  定义了HTML文档的样式。<link>  定义了一个文档和外部资源之间的关系)。练习样式表:行内样式表、内嵌样式表、外部样式表。分别练习定义三类选择器:HTML 选择器、CLASS 类选择器、ID 选择器。初步运用css做图片导航块,使用JS定义函数进行登录注册验证,完成登录与注册页面的前端,夜间模式的开启与关闭。学习Flask项目,加载静态文件,父模板的继承和扩展,连接mysql数据库,创建用户模型,建立mysql和app的连接。通过用户模型,对数据库进行增删改查操作。完成注册功能,将界面的数据存到数据库,redirect重定向登录页。完成登录功能,用session记住用户名,像操作字典一样操作‘session’:增加用户名‘session[‘username’]’=username。登录之后更新导航,用上下文处理器app_context_processor定义函数,获取session中保存的值,返回字典,在父模板中更新导航,插入登录状态判断代码。完成注销功能,清除session。发布功能的实现,制作首页的显示列表,首页列表显示全部问答,完成问答详情页布局,从首页问答标题到问答详情页,完成评论功能,完成评论列表显示及排序,个人中心显示,个人中心标签页导航,完成个人中心—导航标签,实现搜索功能等等。学了这些知识后,基本能简单实现基于Python的Flask框架web建设项目。

 1、使用工具

主要工具有:pycharm64.exe  + Navicat for MySQL

 

2、部分重要代码

(1)数据库的创建以及增删查改功能

 

class User(db.Model): # 创建类User
__tablename__ = 'user' # 类对应的表名user
id = db.Column(db.Integer, primary_key=True, autoincrement=True)# autoincrement自增长
username = db.Column(db.String(20), nullable=False)# nullable是否为空
_password = db.Column(db.String(200), nullable=False) # 密码加密内部使用
nickname = db.Column(db.String(50), nullable=True)

 

class Wenda(db.Model):
__tablename__ = 'wenda'
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('wenda'))

class Comment(db.Model):
__tablename__ = 'comment'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
author_id = db.Column(db.Integer, db.ForeignKey('user.id'))
wenda_id = db.Column(db.Integer, db.ForeignKey('wenda.id'))
creat_time = db.Column(db.DateTime, default=datetime.now)
detail = db.Column(db.Text, nullable=False)
wenda = db.relationship('Wenda', backref=db.backref('comment',order_by=creat_time.desc))
author = db.relationship('User', backref=db.backref('comments'))

 

db.create_all() #是否链接成功


# 数据添加
# user=User(username='ma',password='gg')
# db.session.add(user)
# db.session.commit()
#
#
# 数据更新
#
# user = User.query.filter(User.username=='hh').first()
# user.password='gg'
# db.session.commit()
#
#
# 数据查询
# user = User.query.filter(User.username=='ma').first()
# print(user.username,user.password)
#
# 数据删除
# user = User.query.filter(User.username=='ma').first()
# db.session.delete(user)
# db.session.commit()

 

(2)父模板的继承与静态页面的加载 

{% extends 'moban.html' %}
{% block registertitletitle %}{% endblock %}
{% block registerhead %}{% endblock %}
{% block registerbody %}{% endblock %}

(3)引用第三方库

from flask import Flask, render_template, request, redirect, url_for, session
from flask_sqlalchemy import SQLAlchemy
import config,os
from datetime import datetime
from functools import wraps
from sqlalchemy import or_,and_
from werkzeug.security import generate_password_hash,check_password_hash

 

(4)连接数据库

import os
DEBUG =True
SECRET_KEY = os.urandom(24)

DIALECT ='mysql'
DRIVER ='mysqldb'
USERNAME='root'
PASSWORD=''
HOST='localhost'
PORT='3306'
DATABASE='mis24'

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/mis24?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = False

(5)密码保护

@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

3、完成基本的网页设计

(1)注册页面

(2)登录页面 

(3)发布问答页面

(4)用户发布问答后显示在首页

 

(5)评论页面

 

(6)个人中心

 

posted @ 2018-01-05 17:11  004熊锋阳  阅读(189)  评论(0编辑  收藏  举报