期末作品检查

1、学期个人总结

       在这个学期在杜老师的带领下学习了Python语言,这是一门相对于Java语言来说是比较简单的语言,用处也十分的广大。python是一种面向对象的解释型计算机程序设计语言,语法简洁清晰,目前已超越java成为最热门的编程语言之一。python是一种面向对象的解释型计算机程序设计语言,由荷兰人于1989年发明,Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

       在前期的学习中,我们用Python进行简单算数计算。了解turtle库(海龟库),在此环境中练习条件、循环、函数定义的代码敲打,并画出了五角星、同心圆、太阳花、中国国旗等。随后便学习了字符串的基本操作,学会输入字符串,输出代码计算后的结果。还有凯撒密码、GDP格式化输出、九九乘法表等简单操作。利用python进行英文词汇统计,组合数据类型练习,用文件形式实现完成的英文词频统计、中文词频统计。利用datetime处理日期和时间,将字符串转化成imestamp与timedelta等等。

后期我们使用了PyCharm学会了网页的开发设计,也是第一次接触到了前段,还有连接数据库,引用了上学期学习的对数据库的增删查改的功能。第一次自己设计网站,觉得还是挺满意的,但是这其中还是存在着很多的不足需要改善,之后会继续努力学习Python语言,以改善现阶段的这个不完善的项目。

 

2、使用工具

在Python开发过程中,我们使用的主要工具是pycharm软件,使用到的还有数据库。

 

3、完成基本的网页设计

(1)网站父模板统一布局:头部导航条、底部图片导航、中间主显示区域布局

 

(2)注册页面

 

(3)登录页面

 

(4)发布问答,需要用户登录才能发布问答。

 

(5)用户登录后的用户账号和注销功能。

 

(6)用户发布问答

 

(7)查找功能

 

(8)个人中心

 

(4)部分代码演示

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

{% extends 'base.html' %}
{% block registertitle %}{% endblock %}
{% block registerhead %}{% block body %}
{% block body %}{% endblock %}

(2)引用第三方库

from flask import Flask,render_template,request,redirect,url_for,session
from flask_sqlalchemy import SQLAlchemy
import config
from functools import wraps
from sqlalchemy import or_,and_
from datetime import datetime

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

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

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

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'))
    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'))
#查询
#user = User.query.filter(User.username == 'nini').first()
#print(user.id,user.password)

#修改
#user = User.query.filter(User.username == 'ninini1').first()
#user.password='123456'
#user.username='nana'
#db.session.commit()
#print(user.id,user.password)

#删除
#user = User.query.filter(User.username=='nana').first()
#db.session.delete(user)
#db.session.commit()


#增加
#user = User(username='dadada',password='111111')
#db.session.add(user)
#db.session.commit()

(4)连接数据库

import os

DEBUG =True

SECRET_KEY = os.urandom(24)

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

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/ni_db?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

 

posted @ 2018-01-05 09:39  053倪塨槟  阅读(123)  评论(0编辑  收藏  举报