Day20
回顾:
1. 请求生命周期

2. 中间件
  md = [
    "file_path.classname"
  ]
  process_request【可有可无】 process_response【必须有】
  process_request process_response
  process_request process_response
  process_request process_response
  process_request process_response

路由->函数
3. 路由系统
  a. /index/ -> func
  b. /index/(\d+) -> func()
  c. /prev/ -> include('xxx.urls')
  d. /detail/ -> func n1
  {% url n1 %}
  reverse('n1')
4. 视图函数
  a. FBV
    def index(request):
    request.POST
    request.GET
    request.method
    request.FILES
    request.body
    request.COOKIE
    request.session
    request.path_info
    request...

    return render
    return redirect
    return HttpResponse

b. CBV
  class Foo(view):
    def dispatch
      pass

     def get

      ...
5. 模板引擎渲染
  a. Django后台完成渲染所有工作
  b. 字典,元组,列表: .
  c. simple_tag

6. 数据库操作
  pymysql
    - 自己写SQL语句
  ORM
    - 类和对象完成数据库所有操作

    - 创建类
      - 单表
      - 一对一
      - 一对多
      - 多对多
      - 操作:
      ...

7. 分页

8. Ajax提交
  $.ajax({
    url:
    type:
    data:
    dataType:
    headers:
    success:function(arg){

    }

  })

9. Django Form组件
  class:
    字典 = ()

  obj = Foo(reqest.GET)
  obj.is_valid()

10. 序列化

11. 其他:
  csrf
  缓存
  信号

今日内容:
1. project

  填充数据(admin):
    admin.py
      from repository import models

      admin.site.register(models.UserInfo)
      admin.site.register(models.Comment)
      admin.site.register(models.Favor)
      admin.site.register(models.News)
      admin.site.register(models.NewsType)
  创建用户
    python manage.py createsuperuser
    root
    root!23456

   浏览器:
    http://127.0.0.1:8000/admin

  admin中显示:
    class News(models.Model):
    nid = models.AutoField(primary_key=True)
    user_info = models.ForeignKey('UserInfo')
    class Meta:
    verbose_name_plural = '新闻' # 表名称

    def __str__(self):
      return self.title # 行显示内容
  验证码:
    1. pip3 install Pillow
    2. check_code.py 和 Monaco.ttf【项目跟目录】
    3. <img src='/xxxxxx/'>
    4.
    def xxxxx(request):
      img_obj, code = ac.create_validate_code()
      stream = BytesIO()
      img_obj.save(stream,'png')
      request.session['check_code'] = code
      return HttpResponse(stream.getvalue())

  2. 查看新闻列表
  3. 点赞
    后端:

    前端:
      position: relative; absolute;

      function ZMM(ths,txt) {
      var fontSize = 5;
      var left = 5;
      var top = 5;
      var opacity = 1;

      var tag = document.createElement('span');
      tag.innerHTML = txt;
      tag.style.position = "absolute";
      tag.style.fontSize = fontSize + 'px';
      tag.style.left = left+ 'px';
      tag.style.top = top+ 'px';
      tag.style.opacity = opacity;
      $(ths).append(tag);

      var obj = setInterval(function () {
        fontSize = fontSize + 5;
        left = left + 5;
        top = top - 5;
        opacity = opacity - 0.1;
        tag.style.fontSize = fontSize + 'px';
        tag.style.left = left+ 'px';
        tag.style.top = top+ 'px';
        tag.style.opacity = opacity;
        if(left > 60){
          clearInterval(obj);
          tag.remove();
        }
    },100);
    }

  4. 图片验证码
  5. 评论和多级评论(**********)
    a. 结构化数据
    b. 递归生成HTML

  7. 后台管理
    - 简单菜单(适用于固定个数菜单)
    - 动态菜单
    当前URL: /backend/host/

    a. 结构化数据
    b. 递归生成HTML

  6. WebSocket
    http://www.cnblogs.com/wupeiqi/p/6558766.html

  8. KindEditor[插件] ---- 欠

    参考链接:http://www.cnblogs.com/wupeiqi/articles/6307554.html
    - 高度宽度
    - item
    -
      uploadJson: '/kind/upload_img/',
      extraFileUploadParams: {
      'csrfmiddlewaretoken': '{{ csrf_token }}'
    },
    filePostName:'fafafa'

    def upload_img(request):
    """
     文件上传
    :param request:
    :return:
     """
    obj = request.FILES.get('fafafa')

    dic = {
    'error': 0,
    'url': '/static/imgs/20130809170025.png',
    'message': '错误了...'
    }

    return HttpResponse(json.dumps(dic))

作业:整理今天

下周内容:
1. Alex,
   协同开发GitHub
   celery
   等

day20 project+查看新闻列表 + 点赞 + 图片验证码 + 评论和多级评论 + 后台管理 + webSocket + kindEditor的更多相关文章

  1. Django 六——自定义标签、图片验证码、发送邮件、评论树、组合搜索

    1.自定义标签 2.图片验证码 3.生成邮箱验证码.发送邮件 4.评论树实现 5.组合搜索(Q) 1.自定义标签 配置: a.在app中新建文件夹  templatetags,里面新建  xx.py文 ...

  2. JQuery实现页面企业广告图片切换和新闻列表滚动效果

    最近用到一个页面上图片左右切换和新闻列表滚动呈现的效果,整理如下: 前段代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  3. django文件上传、图片验证码、抽屉数据库设计

    1.Django文件上传之Form方式 settings.py, ALLOWED_HOSTS = ['*'] INSTALLED_APPS = [ 'django.contrib.admin', 'd ...

  4. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  5. python随机图片验证码的生成

    Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Im ...

  6. 怎样用Java自制优秀的图片验证码?这样!

    Completely Automated Public Turing test to tell Computers and Humans Apart 全自动区分计算机和人类的图灵测试 简称CAPTCH ...

  7. JMeter开发插件——图片验证码识别

    我们在性能测试中总会时不时地遭遇到来自于应用系统的各种阻碍,图片验证码就是一类最常见的束缚,登录或交易时需要按照图片中的内容输入正确的验证信息后,数据才可以提交成功,这使得许多性能测试工具只能望而却步 ...

  8. 字符识别Python实现 图片验证码识别

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  9. vue ui九宫格、底部导航、新闻列表、跨域访问

    一.  九宫格 九宫格:在mint-ui组件库基于vue框架 mui不是基于vue框架 只是css/js文件 (1)官方网站下载安装包 (2)copy css js fonts[字体图标] src/l ...

随机推荐

  1. PEP8编码规范

    1.代码布局设计 1.1 缩进 -4个空格进行缩进 1.2 tab键-在python2中tab和空格是混用的,但是在python中基本上使用tab(pycharm开发工具会自动对代码缩进) 1.3 最 ...

  2. mysql数据库优化的几种方法

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  3. bootstrap模态框嵌套、tabindex属性、去除阴影

    模态框嵌套 在开发中,遇到需要通过点击事件触发第一个模态框,触发后通过事件唤起第二个模态框,并且通过事件触发第三个模态框:即模态框嵌套. 模态框嵌套需要用一个模态框包裹所涉及嵌套的模态框,从而点击触发 ...

  4. 自适应Simpson公式

    参考刘汝佳<算法指南>P163 #include<cstdio> #include<cmath> double a; double F(double x){ +*a ...

  5. spring mvc 全局处理异常

    spring框架支持很多种全局处理异常的方式 一.Spring MVC处理异常有4种方式: (1)使用Spring-MVC提供的SimpleMappingExceptionResolver: (2)实 ...

  6. hdu2597 Simpsons’ Hidden Talents

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2594 题目: Simpsons’ Hidden Talents Time Limit: 2000/1000 ...

  7. ZOJ - 4048 Red Black Tree (LCA+贪心) The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online

    题意:一棵树上有m个红色结点,树的边有权值.q次查询,每次给出k个点,每次查询有且只有一次机会将n个点中任意一个点染红,令k个点中距离红色祖先距离最大的那个点的距离最小化.q次查询相互独立. 分析:数 ...

  8. 【转】Winform Socket通信

    Socket相关概念[端口] 在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应 ...

  9. 利用C++调用天气webservice-gSOAP方法

    首先需要下载一个gSOAP工具包 下载路径为:https://sourceforge.NET/projects/gsoap2/ 至于有关于gSOAP的一些用法和包含的文件的说明可从官网查看:http: ...

  10. Statement与PreparedStatement

    Statement 用于通用查询,能批处理 PreparedStatement(简称PS) 用于执行参数化查询,能批处理 什么是参数化查询? 指在设计与数据库链接并访问数据时,在需要填入数值或数据的地 ...