django第二天

Posted zhaoyang110

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django第二天相关的知识,希望对你有一定的参考价值。

内容回顾

1.HTTP协议

  1.请求方式:8种 GET / POST

  2.状态码

    1xx

    2xx  200 ok

    3xx  重定向 301 302 

    4xx 请求的错误

    5xx  服务器的错误

  3.url

    http://www.cnblogs.com /guobaoyuan?k1=v1&k2=v2

    协议  域名  路由 参数 
  4.格式

    请求(request ---浏览器给服务端发的细信息)

    ‘请求方式URL HTTP/1.1

    k1:v1

    k2:v2

    

    请求体(请求数据)‘   get 请求没有请求体

 

    响应(reponse---服务端给浏览器发送的消息)

    ‘HTTP/1.1状态码 状态描述

    k1:v1

    k2:v2

    

    响应数据(响应体)‘   ---- >html文本

  2.浏览器发送请求接受响应的流程

    1.在浏览器的地址中输入URL,回车,发送了一个GET请求

    2.服务器接受请求,获取到路径,根据不同的路径返回不同的内容

    3.服务器把响应的内容组成符合HTTP协议响应格式的字符串返回给浏览器

    4.浏览器接受到响应,拿到响应体(HTML代码),进行渲染

  

  3.web框架(socket服务端)

    功能:

    1.socket收发消息

    2.根据不同的路径返回不同的内容

    3.动态页面(字符串替换 --- 模板的渲染)

  

  4.分类

    django : 2  3  生产 wsgiref   上线  uwsgi

    flask: 2 

    tornado: 1 2 3

  

  5.django

    1.下载安装

      命令行:pip install django==1.11.18 -i 源

      pycharm

    2.创建项目

      命令行: django-admin startproject 项目名

      pycharm

    3.启动

      命令行:

      切换达到项目目录下: manage.py 
      python manage.py runserver   # 127.0.0.1:8000

      python manage.py runserver 80  # 127.0.0.1:80

      python manage.py runserver 0.0.0.0:80   # 0.0.0.0:80

 

今日内容

  1.写一个完整的登录实例

  静态文件的配置

  STATIC_URL = ‘/static/‘   # 别名

  STATICFILES_DIRS = [

    os.path.join(BASE_DIR , ‘static‘)

  ]

  
   2. form 表单:

    1.form标签有 action=""    

          method= "post" 

          novalidate  不需要验证

    2. input标签要有name属性

    3.需要有一个type=submit的input标签或者button按钮

    

    目前看有提交post请求

      在settings.py中注释MIDDLEWARE中的

      django.middleware.csrfViewMiddleware

 

    request.method   #  请求方式  POST /  GET

    request.POST   #  form表单提交POST请求的数据,类似字典

    

    return redirect(‘https://baidu.com‘)

    return redirect("/index/")    # 响应头 Location:/index/

  

  get和post区别

    get获取一个页面

    django中获取数据 :request.GET

    

    post:提交数据

    数据不可见

    django中获取数据:request.POST

 

  2.APP

  命令行: python manage.py startapp  app名称

  pycharm:

    tools --->run manage.py task  ------> startapp  app名称

  注册APP

    

# 注册APP
INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘app01‘,
    ‘app01.apps.App01Config‘   # 推荐写法
]

  3.ORM的介绍和使用

  1.django项目中使用mysql数据库的流程:

    1.创建数据库

      create database 数据库的名字

    2.配置

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,   # 引擎
        NAME: day60,        # 数据库名字
        HOST: 127.0.0.1,    # IP
        PORT: 3306,            # 端口
        USER: root,            # 用户名
        PASSWORD: 123,        # 密码
    }
}

 

    3.告诉django使用pymysql这个模块连接数据库

    在settings.py同级目录下的init中写代码  

import pymysql
pymysql.install_as_MySQLdb()

     4.创建表(在app下的models.py中写类)

from django.db import models


class User(models.Model):
    username = model.CharField(max_length=20)
    password = models.CharField(max_length=20)

    5.执行数据库迁移的命令

python manage.py makemigrations   # 保存models.py的变更记录


python manage.py migrate     # 把变更记录同步到数据库中

 

  2.ORM操作

# 获取表中的所有数据 对象列表

  ret = models.User.object.all()

  for i in ret :
            print(i.username,i.password,type(i.username))  #字段

#获取一条数据
    ret = models.User.object.get(username="alex")  # 对象  
    
    get 查不到会报错  
          查到多个也会报错

# 获取满足条件的多个数据,对象列表
    ret = models.User.object.filter(password=123)

 




以上是关于django第二天的主要内容,如果未能解决你的问题,请参考以下文章

Django TodayArchiveView 显示第二天的日期

django之第二天

Django 学习第二天

django第二天

第二天 django apache

django 学习第二天