zoukankan      html  css  js  c++  java
  • 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')
  • 相关阅读:
    netcat命令
    CSS 中背景图片定位方法
    Eclipse 安装svn插件及使用
    【Mysql】数据库为啥会出现_encrypt和_warning成对的表
    【Mysql异常】[HY000][1030] Got error 28 from storage engine
    【Nginx】使用certbot安装免费https证书使Nginx支持Https请求
    【Nginx】将http升级到https并且同时支持http和https两种请求
    【异常】org.eclipse.jgit.api.errors.TransportException: git@xxx.xxx.xxx/base-config-center.git: channel is not opened.
    【Spring Boot】Spring Boot之利用Logstash将日志转换成以JSON的格式存储和输出
    【Spring Cloud】Spring Cloud之Zipkin server搭建以及RabbitMQ收集,分布式服务跟踪(3)
  • 原文地址:https://www.cnblogs.com/zhaoyang110/p/10273586.html
Copyright © 2011-2022 走看看