zoukankan      html  css  js  c++  java
  • django第五天(虚拟环境安装和视图层相关)

    django第5天

    虚拟环境安装

    '''
    1.通过pip3安装虚拟环境:
    	-- pip3 install virtualenv
    2.前往目标文件夹:
    	-- cd 目标文件夹  (C:Virtualenv)
    3.创建纯净虚拟环境:
    	-- virtualenv 虚拟环境名 (py3-env1)
    了解:创建非纯净环境:
    	-- virtualenv-clone 本地环境 虚拟环境名
    4.终端启动虚拟环境:
    	-- cd py3-env1Scripts
    	-- activate
    5.进入虚拟环境下的python开发环境
    	-- python3
    6.关闭虚拟环境:
    	-- deactivate
    7.PyCharm的开发配置
    	添加:创建项目 -> Project Interpreter -> Existing interpreter -> Virtualenv Environment | System Interpreter -> 目标路径下的python.exe
    	删除:Setting -> Project -> Project Interpreter -> Show All
    

    伪静态的SEO优化

    动态页面:数据内容会发生变化的页面
    静态页面:数据内容不会发生变化的页面
    针对SEO(搜索引擎优化),静态页面更容易被搜索引擎网站收录
    如http://127.0.0.1:8888/index/delete1.html会认为是用固定的html显示的页面(也就是静态页面)
    伪静态就是将动态页面伪装成静态页面,容易被搜索引擎网站收录,从而增加搜索概率,提高流量
    路由层:
    url(r'^article/(?P<id>(d+)).html/$',views.article,name = 'article')
    视图函数层:
    def article(request,id):
        return  render(request,'article.html',{'id':id})
    模板层:
    index.html
    <a href="{% url 'article' 1 %}">第一篇文章</a>
    <a href="{% url 'article' 2 %}">第二篇文章</a>
    <a href="{% url 'article' 3 %}">第三篇文章</a>
            
    article.html
    <h1>第{{ id }}篇文章</h1>
    
    执行顺序:
     ①点击127.0.0.1:8888 进入主页
     ②点击a标签进入对应的url路径,参数传给了视图函数,视图函数又将参数传给了模板
    

    request对象

    1.method:请求方式
    2.get请求的参数:GET
    3.post请求的参数(本质是从body中取出来):POST
    4.body:post提交的数据(不能直接查看)
    5.path:请求的路径,不带参数
    6.request.get_full_path():请求路径,带参数
    7.FILES:文件数据
    8.encoding:编码格式
    9.META:数据大汇总的字典    
    

    FBV与CBV

    FBV:function base views 函数方式完成视图响应
    CBV:class base views 类方式完成视图响应
    视图层:
    from django.views import View
    from django.shortcuts import HttpResponse
    
    class Cbvview(View):
        def get(self,request):
            return HttpResponse("响应get请求")
        def post(self,request):
            return HttpResponse("响应post请求")V
        
     路由层:
     url('^path/$',views.Cbvview.as_view())
    
    
    get方法返回get请求的结果
    post方法返回post请求的结果
     
    

    文件上传

    模板
    <form  action='/path/' methode = 'post' enctype = 'multipart/form-data'>#enctype传送二进制数据
    {% csrf_token%}
    <input type = 'file' name = 'files' multiple>#multiple支持多文件上传
    <input type = 'submit' value = "上传">
    </form>
    
    视图函数:
        files = request.FILES.getlist('files')
        for  file in files:
            with open(file.name,'wb')as f:
                for line in file:
                    f.write(line)
    
  • 相关阅读:
    连续竞价
    使用 Sonar 进行代码质量管理
    【转】jQuery.ajax向后台传递数组问题
    DevOps
    【转】赚钱的思维
    【转】如果有人让你推荐编程技术书,请叫他看这个列表
    Java学习记录-Jdk包简单介绍
    有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a
    有两个数a,b,请写一个函数交换a,b
    开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/10478858.html
Copyright © 2011-2022 走看看