$Django setting.py配置 ,GET、POST深入理解,三件套,orm对象关系映射简介

时间:2022-05-25 06:17:41
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          ----将变化同步到数据库中

随机推荐

  1. jquery 的 sort 函数

    members = [45, 23, 12, 34];members = members.sort(function(a, b){return a-b; );这里面a-b为升序,b-a降序排列:但a, ...

  2. bedtools 每天都会用到的工具

    详细的使用说明:http://bedtools.readthedocs.org/en/latest/ Collectively, the bedtools utilities are a swiss- ...

  3. UIAlertController使用的一个坑

    / // 创建一个确定按钮”一定要注意不能在提醒控制器的按钮的点击方法内部用到提醒控制器自己”,不能把下面这句话放在block内部”不然会死循环,导致警告控制器不能销毁" UITextFie ...

  4. 网络流&lpar;最大流&rpar; CQOI 2015 BZOJ 3931 网络吞吐量

    3931: [CQOI2015]网络吞吐量 Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活 动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器 ...

  5. C&num; 参数按照ASCII码从小到大排序(字典序)

    在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序.如下: public static void requestPay() { Dictionary<string, strin ...

  6. Objective-C和Swift

    在项目中同时使用Objective-C和Swift 苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也 ...

  7. &lbrack;Usaco2008 Feb&rsqb;Meteor Shower流星雨&lbrack;BFS&rsqb;

    Description 去年偶们湖南遭受N年不遇到冰冻灾害,现在芙蓉哥哥则听说另一个骇人听闻的消息: 一场流星雨即将袭击整个霸中,由于流星体积过大,它们无法在撞击到地面前燃烧殆尽, 届时将会对它撞到的 ...

  8. c&num;之时间戳与DateTime的相互转换

    1. 时间戳转 DateTime static DateTime GetServerNow(ulong serverTime) { DateTime dateTimeStart = TimeZone. ...

  9. python中函数的定义&comma;调用,全局变量,局部变量,函数的嵌套使用-初级篇

    函数的基本概述 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,可以思考一下如果有某个功能的代码是在多个地方使用的是否可以只写一次?此时的代码该如何定义.先观察以下的案例: ...

  10. ie8的input的placeholder不显示的解决bug

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...