zoukankan      html  css  js  c++  java
  • python全栈开发day60-django_app ORM 完整登录案例

    day60
    内容回顾:
        1. HTTP协议:
            1.请求(浏览器发给服务端的消息——request)
                请求方法 URL 协议版本
    
                k1:v1
    
                k2:v2
    
                
    
                请求体        —— 》 可以有,可以没有 GET请求没有
            2. 响应(服务端返回给浏览器的消息——response)
                协议版本 状态码 状态码描述符
    
                k1:v1
    
                k2:v2
    
                Content-Type: text/html;charset=utf8;
                
    
                响应体        —— 》 HTML代码
        2. web框架的本质:
            a. socket收发消息 ——》  wsgiref、uwsgi
            b. URL和函数的对应关系    
            c. 字符串的替换     ——》模板渲染
        
        
        3. 一个请求的完整的流程:
            1. 有个web服务启动,等待浏览器连接
            2. 在浏览器上输入URL,浏览器去连接你的web服务,发消息 HTTP请求
            3. 服务端收到消息,解析请求,获取到URL,执行对应的函数
            4. 去读取HTML文件,替换的文件,或到新的HTML代码
            5. 将HTML代码按照HTTP协议响应格式返回给浏览器
            6. 浏览器收到消息,拿到HTML代码进行渲染。
            7. 关闭连接。
            
    django相关内容回顾:
    
        1. 下载
            1. 命令行方式:
                pip install django==1.11.14
                pip install -i  https://pypi.doubanio.com/simple/  django==1.11.14
            2. pycharm 
        2. 创建项目
            1. 命令行方式:
                cd 保存项目的目录
                django-admin startproject 项目名
            2. pycharm
                files new project 选择django 写项目名 选解释器 create
        
        
        3. 启动项目
            1. 命令行方式:    
                cd 项目目录下
                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
            2. pycharm
        
        4. 配置相关:
            1. TEMPLATES 模板  存HTML文件
                os.path.join(BASE_DIR, 'templates') 
                
            2. 静态文件
                STATIC_URL = '/static/'  # 别名
                STATICFILES_DIRS = [
                    os.path.join(BASE_DIR, 'static'),
                ]
    
    今天内容:
        1. 完整的登录实例
            
            form表单:
                1. method="post" action=""   提交方式  向哪提交
                2. input标签有name属性
                3. 必须有 type="submit" 按钮或者input 
    
        2. GET 和 POST
        
            GET:
            1. 获取一个页面
            2. 提交数据(在URL上可见):
                https://www.sogou.com/web?query=%E6%96%B0%E5%9E%A3%E7%BB%93%E8%A1%A3
                http://127.0.0.1:8000/login/?user=alex&pwd=alexdsb
                
            POST:
                提交数据,数据不可见
    
        3. HttpResponse, render, redirect
        
            HttpResponse:直接返回字符串(括号中的字符串)
            render    :    返回一个你指定HTML文件
            redirect:    跳转 --加了一个location响应头
            
        4. APP 
            项目     老男孩
            APP     Python学院  linux学院 GO 
    
        5. ORM 
            对象关系映射(Object Relational Mapping,简称ORM)
            
            1. 解决不太会写SQL的问题
            2. 操作对象的方式去操作数据库 
            
            
            ORM能干的事:
                1. 连接数据库。(不能创建数据库)
                2. 操作数据表  —— 》  创建表、删除表、更新表
                3. 操作数据行  —— 》 对数据行 增删改查
                
                
            类        ——》    数据表
            对象    ——》    数据行
            属性    ——》    字段
            
            
    总结:
    1. APP
        创建APP的方式:
            命令行: pyhton manage.py startapp app名称
            pycharm创建 :tools  —— 》run manage.py task ——》 startapp app名称
            
        注册APP:
            INSTALLED_APPS 加入 APP01  或者   'app01.apps.App01Config'
            
    2. ORM 
    
    使用mysql数据库的配置:
        1. 创建mysql数据库
        2. 在settings配置
            DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',  # 引擎
                'NAME': 'day60',      # 数据库名字
                'HOST': '127.0.0.1',  # host地址
                'PORT': 3306,            # 端口号
                'USER': 'root',       # 用户名
                'PASSWORD': '',       # 密码
            }
        }
        3. 告诉django用pymysql连接mysql数据库
            在与项目同名下的__init__.py 写如下的代码:
                import pymysql
                pymysql.install_as_MySQLdb()
                
    
    ORM操作:
        0. 创建表:
            在APP下的models.py中写类:
            class Userinfo(models.Model):
                user = models.CharField(max_length=32)
                pwd = models.CharField(max_length=32)    
        1. 使用ORM在数据库中创建表:
            python manage.py makemigrations  # 把你的models的变更记录放在APP下的migrations中
            python manage.py migrate         # 真正在数据库进行操作  创建、删除、修改
         3. 查询:
            查所有数据    models.Userinfo.objects.all()
            查一条数据  models.Userinfo.objects.get(user='alex',pwd='alexdsb') 查不出来报错
        4. 创建一条数据
            models.Userinfo.objects.create(user='heshan', pwd='huaheshan')
            
            
    note

    一、昨日内容回顾

      1.http

         

    1.请求(浏览器发给服务端的消息——request)
    请求方法 URL 协议版本
    k1:v1
    k2:v2

    请求体 —— 》 可以有,可以没有 GET请求没有
    2. 响应(服务端返回给浏览器的消息——response)
    协议版本 状态码 状态码描述符
    k1:v1
    k2:v2
    Content-Type: text/html;charset=utf8;

    响应体 —— 》 HTML代码

      2.web框架本质

    a. socket收发消息 ——》 wsgiref、uwsgi
    b. URL和函数的对应关系
    c. 字符串的替换 ——》模板渲染

      3.一个请求的完整流程  

    1. 有个web服务启动,等待浏览器连接
    2. 在浏览器上输入URL,浏览器去连接你的web服务,发消息 HTTP请求
    3. 服务端收到消息,解析请求,获取到URL,执行对应的函数
    4. 去读取HTML文件,替换的文件,或到新的HTML代码
    5. 将HTML代码按照HTTP协议响应格式返回给浏览器
    6. 浏览器收到消息,拿到HTML代码进行渲染。
    7. 关闭连接。

      4.Django相关内容回顾

         1). 安装

          命令行:

            pip install -i (安装员) django ==1.11.14

          pycharm:。。

         2) 创建项目

          命令行:

            cd 到保存项目的目录下

            django-admin startproject mysite

          pycharm....

         3)启动项目

          命令行:

             cd到项目的目录下:

            python manage.py runserver 80

            python manage.py runserver 127.0.0.1:80

            python manage.py runserver 0.0.0.0:80

          pycharm:....

         4) 配置相关

          settings.py:

          (1)   TEMPLATES模板配置,存放html相关

           os.path.join(BASE_DIR,'templates')

          (2)  静态文件#可以关联多个,但别名都一样,从上向下找,找到就不往下找了。

            STATIC_URL = '/static/'   # 别名

            STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]  

    二、今日内容总结

     1.APP

      创建APP的方式:

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

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

      注册APP:

       INSTALLED_APPS 加入APP01 或者 app01.apps.App01Config

     2.ORM

      使用mysql数据库的配置:

        1.创建mysql数据库

        2.在setting配置

         DATABASES = {

          ‘default’:{

            'ENGINE':‘django.db.backends.mysql’,  #引擎

            'NAME':' test',               #数据库名字

            ‘HOST’:‘127.0.0.1’,        #host地址

            ‘PORT’ : 3306  ,             #

             ‘USER’:‘root’, 

            ‘PASSWORD’:‘’,

            }      

            }

        3.告诉django用pymysql连接mysql数据库

         在与相同同名下的__init__.py 写如下的代码:

         import pymysql

         pymysql.install_as_MySQLdb() 

      ORM操作:

        0.创建表:

         在App下的models.py中写类:

          from django.db import models

          class Userinfo(models.Model):

             user = models.CharField(max_length=32)

             pwd = models.CharField(max_length=32)

         1.使用ORM在数据库中创建表:

         python manage.py makemigrations   # 把你的models的变更记录放在app下的migrations中 

         python manage.py migrate       #  真正的数据库进行操作 创建、删除、修改

          2.查询:

         查询所有数据 models.UserInfo.objects.all()

         查询一条数据 models.Userinfo.objects.get(user='...',pwd='...')

        3.创建一条数据

          models.Userinfo.objects.create(user='...',pwd='.....') 

        4.删除表 直接将class Userinfo注释

         然后再。。。makemigrations -》migrate 

        5.过滤数据

          models.Userinfo.objects.filter(user='...') # 返回一个列表,没有返回None

    三、预习和扩展

        1.文本禁止选中

        

       html{
            -moz-user-select: none; /*火狐*/
            -webkit-user-select: none;  /*webkit浏览器*/
            -ms-user-select: none;   /*IE10*/
            -khtml-user-select: none; /*早期浏览器*/
            user-select: none;
        }
    
        .myClass{
            -moz-user-select: none; /*火狐*/
            -webkit-user-select: none;  /*webkit浏览器*/
            -ms-user-select: none;   /*IE10*/
            -khtml-user-select: none; /*早期浏览器*/
            user-select: none;
        }
  • 相关阅读:
    常见错误集锦
    auto 迭代器的使用
    案例:带有动画的返回顶部
    案例:toDoList
    jQuery事件
    案例:发布微博功能
    案例:购物车功能模块
    jQuery常用的API
    案例:王者荣耀手风琴效果
    案例:jQuery实现tab栏切换功能
  • 原文地址:https://www.cnblogs.com/wuchenggong/p/9360127.html
Copyright © 2011-2022 走看看