zoukankan      html  css  js  c++  java
  • $Django setting.py配置 ,GET、POST深入理解,三件套,orm对象关系映射简介

    1 django中app的概念:
     大学:----------------- 项目
      信息学院 ----------app01
      物理学院-----------app02
     ****强调***:创建的每一个app,都要在配置文件中注册
      cmd创建的app要在setting.py中配置
    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
       'app02',

    ]

    2 模板路径配置:
     1 templates文件夹
     2 settings里注册一下
    TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join (BASE_DIR, 'templates')]
    ,
    'APP_DIRS': True,
    'OPTIONS': {
    'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
    ],
    },
    },
    ]

     
    3 静态文件配置:
     1 STATIC_URL = '/static/'    一般不要改
     2 创建一个static文件夹       一般不要改
     3 STATICFILES_DIRS=[
      os.path.join(BASE_DIR, 'static'),  创建的文件夹路径(可以写多个)
      ]
     
    4 完整版登录功能
     1 login.html 
      ***重点***1 action:提交到后台的地址三种写法:
        1 http://127.0.0.1:8000/login
        2 /login/   推荐用
        3 空
         2 method  post方式
         3 <input type="submit" value="提交">或<button></button>
        type不可以是button
         <form action="http://127.0.0.1:8000/login" method="post">
       <p>用户名:<input type="text" name="name" class="form-control"></p>
       <p >
        密码:<input type="password" name="pwd" class="form-control">
       </p>
       <input type="submit" value="提交">
      </form>
     2 视图层:
      1 request.method  ----前台提交过来请求的方式
      2 request.POST(相当于字典)----post形式提交过来的数据,(http请求报文的请求体重)
      3 request.POST.get('name') ----推荐用get取值(取出列表最后一个值)
      4 request.POST.getlist('name')-----用与多选,[v1,v2,v3]取出列表所有的值_
      5 前台get方式(同上)提交的数据,从request.GET字典里取
      
    5 get请求和post请求  (在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。)
    传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制,特定浏览器和服务器对URL长度有限制。
     get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
     post:往后台提交数据 ,由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。

    6 新手三件套总结
     1 render--返回页面
      render(request,'1.html',{'books':book})
      默认会去templates里找,注意路径
     2 redirect--重定向
      1.redirect('/login/')
      2.通常与reverse连用  反向解析
        r=reverse('aaa',args=(id,))
        redirect(r)
     3 HttpResponse
     本质:都是返回HttpResponse的对象
    7 pycharm连接mysql
     pycharm右边的Database
     
    8 orm介绍
     1 ORM即Object Relational Mapping,全称对象关系映射
     优点:
      1 不用写sql,不会sql的人也可以写程序
      2 开发效率高
     2 缺点:
      1 可能sql的效率低
     3 如何使用:
      如果连接mysql:在setting里配置:
          'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': 'admin',
        'NAME': 'lqz', //数据库文件夹
       }
      在app下的__init__.py里写:
      import pymysql
      pymysql.install_as_MySQLdb()
     
     4 django-orm:
      1 不能创建数据库(需要手动创建数据库)
      2 可以创建数据表
      3 可以创建字段
      
     5 数据库迁移
      1 python3 manage.py makemigrations   ----记录一下数据库的变化
      2 python3 manage.py migrate          ----将变化同步到数据库中
  • 相关阅读:
    在现有项目中使用AspNet Identity 2.0 实战
    SQL 带自增长列的表的插入
    在C++中子类继承和调用父类的构造函数方法
    C++继承
    C++中重载、重写(覆盖)和隐藏的区别实例分析
    C++类
    C++中头文件(.h)和源文件(.cpp)都应该写些什么
    C++模板
    C语言字符串操作总结大全
    C++ 标准模板库(STL)
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/9916912.html
Copyright © 2011-2022 走看看