Django框架基础
一 python中的web框架
    a:socket
    b:路由跟视图函数匹配关系
    c:模板渲染
    django:  a: 用了别人的wsgiref   b:自己写的   c:自己写的
    flask:   a: 用了别人的          b:自己写的   c:用了别人的:jinja2
    tornado: a: 自己写的            b:自己写的   c:自己写的
二 http协议:
    特点:1 基于TCP/IP协议之上的应用层协议
         2 基于请求-响应模式
         3 无状态保存
         4 无连接
    请求格式:
  请求首行 get / http/1.1\r\n  #方法 UIL  协议版本  
     key:value\r\n\r\n
     请求体的内容    
 响应格式:
  响应首行 http/1.1 200 ok \r\n #协议版本 状态码 状态码原因
  响应头:  key:value\r\n
     \r\n
  响应体:  html的代码
 状态码: 1开头 正在处理,  2开头 正常成功,  3开头 重定向状态,
   4开头 客户端发送错误,  5开头 服务端处理错误
三 django的安装和简单使用
    安装:1 pip3 install django==1.11.9  #cmd上安装
         2 pycharm 下安装,选择版本号    #pycharm安装
    使用:(cmd上使用)
         命令创建项目 :django-admin startproject 项目名字
         创建app: python3 manage.py startapp app01
   #也可以在pycharm上使用项目,创建项目,创建第一个app
    文件目录介绍:
        manage.py---项目入口,执行一些命令
        项目名
            settings:全局配置信息
            urls:总路由,请求地址跟视图函数的映射关系
        app名字
            migrations:数据库迁移的记录
            models.py  数据库表模型
            views  视图函数
    运行项目:
  pycharm:打开项目,启动项目,点绿色三角(提前设置好ip和端口)
        cmd中:pytyon3 manage.py runserver 127.0.0.1:8001
四 django中app的概念:
 ****强调***:创建了app,要在配置文件(settings)中注册
 ##使用pycharm创建的第一个app不需要注册,cmd添加的app全部要注册
五 模板路径配置:
 1 templates文件夹
  内部是关于前端html也面文件的页面文件
 2 使用时必须使templates在settings里注册一下
六 静态文件配置:
 1 STATIC_URL = '/static/'    一般不要改(在配置文件(settings)中)
 2 创建一个static文件夹       一般不要改(用于存放所有css,js,img文件)
 3 STATICFILES_DIRS=[
  os.path.join(BASE_DIR, 'static'),  创建的文件夹路径(可以写多个)
  ]
七 完整版登录功能
 1 login.html   (templates文件中)
  重点: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')-----取出列表所有的值
  5 前台get方式提交的数据,从request.GET字典里取
 3 链接数据库
  conn = pymysql.connect(host='127.0.0.1', port=3306, db='lqz', user='root', password='admin')
        cur = conn.cursor()
        cur.execute('select * from user where name=%s and password=%s ', [name, pwd]) #(防止注入,推荐写法)
        user = cur.fetchone() 
八 get请求和post请求
 get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
 post:往后台提交数据 
九 新手三件套总结
 1 render--返回页面
  默认会去templates里找,注意路径
 2 redirect--重定向页面
 3 HttpResponse--返回一个字符串
 本质:都是返回HttpResponse的对象
十 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          ----将变化同步到数据库中

Day71Django基础的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. textview自定义跳转链接

    设置方式 ,主要是遍历html中的url,然后加一个自定义的跳转 private void setTextLink(String rule) { if(TextUtils.isEmpty(rule)) ...

  2. Java程序第二次作业

    1.编写“人”类及其测试类.1.1 “人”类: 类名:Person 属性:姓名.性别.年龄.身份证号码 方法:在控制台输出各个信息1.2 测试类 类名:TestPerson 方法:main ...

  3. postman设置环境变量

    postman属于一键式安装,不多赘述 1.设置环境变量 点击设置进入 添加环境变量 添加成功可选择 应用{{}}包住变量名即可 地址变化更换即可

  4. SQL语句删除和添加外键、主键的方法

    --删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter ...

  5. [经验分享] MySQL Innodb表导致死锁日志情况分析与归纳【转,纯学习】

    在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)insert into backup_ta ...

  6. C# 切分图片

    public void Slice() { // 图片路径 var file = "F;/aaa.png"; // 水平切分 ; // 纵向切分 ; ; i < horizo ...

  7. Assembly Experiment3

    AIMS & PREPARATIONS of THIS EXPERIMENT: 1st point of this experiment: realize the programme t1.a ...

  8. [原] RTTI 为什么type_info 有比较操作

    The lifetime of the object returned by typeid extends to the end of the program. 根据C++标准, typeid()返回 ...

  9. WMI tester

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. 详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.

    彩色进度条的实现与makefile编译: 创建一个process文件,在里面编写实现进度条的代码    1.在编写代码的时候我们首先要区分两个转义字符:\n \r \n:表示换行,换到下一行,并位于起 ...