期末作品检查

    1. 期末作品检查:基本要求
      1. 检查时间:18最后四节课,上课之前必须全部完成,上课做基本部署就开始检查
      2. 方式:逐个运行演示,抽查代码
      3. 主题:选一个主题,整个网站风格统一,布局合理,尽量美观。

    2. 期末作品检查:必须完成:
      1. 网站父模板统一布局:头部导航条、底部图片导航、中间主显示区域布局
      2. 注册、登录、注销
      3. 发布、列表显示
      4. 详情页
      5. 评论、列表显示
      6. 个人中心
      7. 搜索,条件组合搜索
      8. 一篇完整的博客
        1. 个人学期总结
        2. 总结Python+Flask+MysqL的web建设技术过程,标准如下:
          1. 即是对自己所学知识的梳理
          2. 也可作为初学入门者的简单教程
          3. 也可作为自己以后复习的向导
          4. 也是一种向外展示能力的途径

    3. 期末作品检查:加分功能
      1. 文章分类、显示
      2. 点赞、收藏
      3. 修改密码、头像、上传头像
      4. 我的
      5. 高级搜索

1.总结:

     在前期Python的基础课程中学习到了turtle库的基础练习、字符串的基本操作、凯撒密码 、GDP格式化输出、99乘法表、中英文词频统计、和datetime处理日期和时间等等基础学习。其中最有趣的也是最简单的就是turtle库的基础练习,画出五角星,比较好玩,在后来网页制作的课程中我学习各种网页前端页面的效果,还有后台连接数据库,并学会在网页上利用pysql库代码对数据库的数据进行增删查改,在页面显示效果。最后做出了一个较为粗糙的论坛网站,模仿了老师上课讲的,看了截图,请教了同学才做出一个简单的网站。在今后还会继续学习Python的。我刚刚开始接触到Python这门编程语言的时候,就发现相比以往学习的java这门编程语言中,这门语言更容易入门,代码较为精简,而功能非常齐全,不止可以用来制作网页,而且可以进行数据挖掘,而我在学习中可以很快的上手,并且比较有兴趣的去打代码,不像以往打JAVA代码一样非常的烦闷,可以较为轻松的心态去做好Python,有一句程序员们调侃的一句话,叫:”人生苦短,我学Python”。

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

前言及前期准备:运用到了python,flask,mysql,render_template,request,redirect,url_for,session,SQLAlchemy,flask_sqlalchemy等来进行web的构建。

系统软件:pycharm,navicat,内网址填入localhost,外网域名根据自己喜欢的名字填写,建立自己网站的数据库名,才能访问创建的该页面

前期工作:分别写网页所需要的html文件,再而从py文件,建立相应的数据库传到网页,若需要装饰器,还要定义装饰器,这个装饰器的作用就是将地址与方法名联系起来,当HTTP请求的url时候将调用方法进行处理。也就是建立了url与处理函数的映射。

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

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

前端实现:

登陆:

复制代码
{% extends 'base.html' %}
{% block title %}
登录
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container" style="padding-top: 200px;">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">
<form class="form-horizontal" role="form" method="post" action="{{ url_for('login') }}">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">账号</label>
<div class="col-sm-10">
<input type="text" name="username" class="form-control" id="inputEmail3"/>
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" name="password" class="form-control" id="inputPassword3"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label><input type="checkbox"/>Remember me</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">登录</button>
</div>
</div>
</form>
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}

{% endblock %}

注册:

复制代码
{% extends 'base.html' %}
{% block title %}
注册
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container" style="padding-top: 200px;">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">
<form class="form-horizontal" role="form" method="post" action="{{ url_for('regist') }}">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">账号</label>
<div class="col-sm-10">
<input type="text" name="username" class="form-control" id="inputEmail3" required/>
</div>
</div>
<div class="form-group">
<label for="Password1" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" name="password" class="form-control" id="Password1" required/>
</div>
</div>
<div class="form-group">
<label for="Password2" class="col-sm-2 control-label">确认密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="Password2"required/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" onclick="return aaa()" class="btn btn-default">注册</button>
</div>
</div>
</form>
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}
<script>
function aaa() {
var p1 = document.getElementById('Password1')
var p2 = document.getElementById('Password2')
if (p1.value != p2.value){
alert('两次密码不一样!')
return false;
}
return true;
}

</script>
{% endblock %}

个人中心:
复制代码
{% extends 'base.html' %}
{% block title %}
个人中心
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">
<ul class="nav nav-tabs">
<li role="presentation"><a href="{{ url_for('comment',user_id=user2.id,num='1') }}">全部问题</a></li>
<li role="presentation"><a href="{{ url_for('comment',user_id=user2.id,num='2') }}">全部评论</a></li>
<li role="presentation"><a href="{{ url_for('comment',user_id=user2.id,num='3') }}">个人信息</a></li>
</ul>
{% block subComment %}{% endblock %}
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}

{% endblock %}
详情页:
复制代码
{% extends 'base.html' %}
{% block title %}
详情页
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">

<h3>{{ ques.title }}</h3>
<div style="padding: 20px;">
{{ ques.detail }}
</div>

<hr>
<form class="form-horizontal" role="form" method="post" action="{{ url_for('answer') }}">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">评论内容</label>
<div class="col-sm-10">
<input type="text" name="author_id" value="{{ user.id }}" hidden>
<input type="text" name="question_id" value="{{ ques.id }}" hidden>
<textarea class="form-control" name="detail" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">发布</button>
</div>
</div>
</form>
<hr>
<h1>用户评论</h1><br>
<ul>
{% for com in comment %}
<li class="list-group-item">
<h4>{{ com.author.username }}</h4>
<div>
{{ com.detail }}
</div>
</li>
{% endfor %}
</ul>
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}

{% endblock %}
首页:
复制代码
{% extends 'base.html' %}
{% block title %}
首页
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">
<ul class="list-group">
{% for foo in questions %}
<li class="list-group-item" style="width: 800px">
<a class="wrap-img" href="#" target="_blank">
<img src="http://www.bookmarkye.com/3.jpg" width="50px">
</a>
<span class="glyphicon glyphicon-left" aria-hidden="true"></span>
<a href="{{ url_for('comment',user_id=foo.author.id ,num='1')}}" target="_blank">{{ foo.author.username }}</a>
<br>
<a href="{{ url_for('detail',question_id=foo.id) }}">{{ foo.title }}</a>
<span class="badge">{{ foo.creat_time }}</span>
<p style="">{{ foo.detail }}
</p>
<div><strong>浏览数:<small>{{ foo.look }}</small></strong></div>
{% endfor %}
</ul>
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}

{% endblock %}
发布问答:
复制代码
{% block title %}
发布问答
{% endblock %}

{% block link %}

{% endblock %}

{% block box %}
<div class="container" style="padding-top: 200px;">
<div class="row clearfix">
<div class="col-md-2 column">
</div>
<div class="col-md-8 column">
<form class="form-horizontal" role="form" method="post" action="#">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">标题</label>
<div class="col-sm-10">
<input type="text" name="author_id" value="{{ user.id }}" hidden>
<input type="text" class="form-control" id="title" name="title"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="name">内容</label>
<div class="col-sm-10">
<textarea class="form-control" name="detail" rows="10"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">发布</button>
</div>
</div>
</form>
</div>
<div class="col-md-2 column">
</div>
</div>
</div>
{% endblock %}

{% block script %}

{% endblock %}

涉及到的相关步骤内容:

  1. HTTP请求发送到后端与响应的过程
  2. Flask
  3. Flask的常用工具和项目配置
  4. pycharm
  5. HTTP requester
  6. 从第一个路由注册接口开始
  7. 使用装饰器处理接口必填字段
  8. Flask上下文获取request参数
  9. 数据库连接
  10. 循环引用

 

posted @ 2018-01-05 09:20  064黄庚华  阅读(197)  评论(0编辑  收藏  举报