zoukankan      html  css  js  c++  java
  • Day55 web框架--Django 2

    一,Django请求的6个步骤

    #Django请求的6个步骤
    1.浏览器地址栏输入url
    2.Django框架收到请求消息,从请求的消息中分解出用户访问的路径
    3.Djang拿着上一步得到的路径在路径和函数的对应关系列表中逐一进行匹配,匹配上之后,得到一个将要执行的函数名
    4.Django执行上一步得到的函数,把所有跟请求相关的数据,封装到一个request的参数中
    5.找到HTML文件,打开文件,读取其内容,按照HTTP响应消息的格式封装,返回给用户的浏览器
    6.浏览器收到服务端返回的响应消息,按照HTML的格式,展示最终的页面

    二,登录示例

    #登录示例
           1.form表单提交数据的三个关键
                1.form标签必须要有action和methon属性,如果有文件的话还需要设置enctype属性
                2.form标签中获取用户输入的标签必须要有name属性
                3.form标签中必须要有submit按钮
            2.request
                1.request.POST -->所有POST请求提交的数据(类似一个大字典,可以按照字典的方式取值)
                2.request.POST['pwd']
                3.request.POST.get('pwd') -->推荐的取值方式
          4.request.method --> 获取当前请求的方法(全大写)
    3.基础必会三件套
    from django.shortcuts import HttpResponse,render,redirect
    1.HttpResponse -->返回简单的字符串 2.render -->返回HTML页面
    render(request,'index.html')
              render(request,'login.html',{'error_msg':error_msg})
    3.redirect -->返回一个重定向(跳转)
    redirect('/index/') -->在同一个网站的不同地址
    redirect('https://www.baidu.com') -->跳转具体的URL
    4.render方法传递额外的参数 render(request,'xx.html',{'a':'aaa',b:'bbb'}),可以传递多个参数 本质上就是一个字符串替换。(高级) 5.Django app
           1.为什么要有app?
              一个Django项目中可以以app为单位划分不同的功能  2
    .创建app
    1.python manage.py startapp app01(app名字) 2.在settings.py中,在INSTALL_APPS中注册我们刚创建的APP

    三,小结

    #现阶段(django基础)创建Django项目的步骤
        1.pycharm或者命令行执行创建一个django项目
             django-admin startproject 项目名
        2.创建一个初始的app,并且在settings.py中告诉django
             python manage.py startapp app的名字
        3.检测settings.py 专门存放HTML文件Templates配置项
        4.配置静态文件相关
             1.STATIC_URL = '/static/'
             2.STATICFILES_DIRS = [
                  os.path.join(BASE_DIR,'static'),
              ]
             3.在项目的根目录创建一个用来存放静态文件的static目录
         5.注释csrf相关的那一行(大概46行)
              否则表单没办法提交数据,就会提示forbidden 403的错误
  • 相关阅读:
    单例模式
    HashSet、LinkedHashSet、SortedSet、TreeSet
    ArrayList、LinkedList、CopyOnWriteArrayList
    HashMap、Hashtable、LinkedHashMap
    andrew ng machine learning week8 非监督学习
    andrew ng machine learning week7 支持向量机
    andrew ng machine learning week6 机器学习算法理论
    andrew ng machine learning week5 神经网络
    andrew ng machine learning week4 神经网络
    vue组件监听属性变化watch方法报[Vue warn]: Method "watch" has type "object" in the component definition. Did you reference the function correctly?
  • 原文地址:https://www.cnblogs.com/lianyeah/p/9849921.html
Copyright © 2011-2022 走看看