zoukankan      html  css  js  c++  java
  • Django的各种初识

    1,django项目的各个文件的介绍

    1.1>项目的根目录:是各个子文件的根目录,在各个文件相互导入文件的时候使用

    1.2>配置文件:为django的各个文件配置相关的各种默认配置

    1.3>路径和函数的对应关系:是当form表单提交数据的时候和有关于网址的东西都会来urls来查找向对应的东西

    1.4> 项目的静态文件:用于存放于静态的比如:css,js,bootstrap,jQuery,img文件等

    1.5>templates:存放HTML文件的地方

    1.6>manager:是命令行入口文件

    1.7>db.aqlite3:django开发环境默认的文件数据库

    2,浏览器和django服务器请求,响应的过程

     第一步先向服务器get login的页面这次是请求,(method=get)

    第二步,当访问服务器的时候,服务器获取到login/(通过request)去urls去寻找login函数

    在第三步,django会帮助login自动执行login函数,并传一个request的参数,这个request是django封装了所有和浏览器请求有关的所有的键值对

    第四步执行login函数的以后,要返回login的html文件,在这里render是返回文件的专属

    在第四步return返回给调用者,(其实是返回给了request)此时,request里有html文件的路径,然后浏览器去渲染这个html文件 

    3,form表单提交数据的三要素:

      3.1>form标签必须标签必须要有action和method属性(action是向那提交数据,method是以什么样的方式提交数据(post,get))

       3.2>所有获取用户输入的标签必须放在form表单中,必须要有name属性(name=值的键值对 ) 

        3.3>必须要有submit按钮(提交)

    4,django基础必会三件套

      from django.shortcuts import  HttpResponse,render,redirect

      4.1>HttpResponse:返回一个指定的字符串

      4.2>render:返回一个html文件

      4.3>redirect:跳转

    5,request相关的属性

      5.1>request.method  --->返回的是请求的方法(全大写):GET/POST...

      5.2>request.GET      --->取得的是URL里面的参数,类似于字典的节后数据

      5.3>request.POST   --->post提交的数据,类似于字典的数据结构

    6,Django的模板数据语言:{{变量名}}

    7,程序连接pymysql

      7.1>导入偏移MySQL模块

      7.2>创建连接

      7.3>获取执行命令的油表

      7.4>用油表去执行sql语句

      7.5>获取sql语句查询的结果

      7.6>关闭油表

      7.7>关闭连接

    7.8>在django中有一种工具帮助翻译sql语句  -->ORM(Object Relationship Model)

    优点:1>开发效率高

      2>开发并不用直接写sql语句

    缺点:执行效率低

    从面向对象的角度去看数据库中的表,一张表就是一个类,表中的每一个字段就是一个类中的属性,每一行就是类实例化的一个对象

    8,django项目中的APP --->项目中又分了一级python包,不同的功能房到不同的包里面

      8.1>创建app-->python manage.py startapp app01

      8.2>告诉Django创建一个APP

        在setting.py找到那个INSTALLED_APPS中添加创建的app

    9,Django中ORM的使用

      9.1>操作数据表

      9.2>操作数据行

    10,使用

      10.1>手动创建一个数据库:---->create database 数据库名

      10.2>告诉Django连那个数据库

        DATABASES = {

          default:{

              "ENGINE":"django.db.backends.mysql"#连接数据库的类型

              "NAME":"数据库名",#数据库名

              "HOST":"127.0.0.1",#数据主机的地址

              "PORT":"3306",#数据库的端口

              "USER":"root",#数据的使用者是管理员

              "PASSEORD":""  

    }

    }

      10.3>连接数据库的方式

        利用第三方的包,eg:pymysql和MYSQLdb,告诉django用pymysql模块代替默认的MYSQLdb去连接MYSQL数据库和setting.py同级的__init__.py文件,写上:

        import pymysql

        pymysql.install_as_MYSQLdb()

      10.4>在app/models.py的文件中创建类

        类必须继承models.Model

      10.5>两个命令

        10.5.1>python manage.py makemigrations --->找个本本把models.py的变更记录一下

        10.5.2>python manage.py migrate  -->把上面变更的记录翻译成SQL语句,去数据库中执行

    11,ORM查询

      类名(表名).object,filter(email="",pwd="")表的字段

    11,登录函数的代码

    # views业务逻辑代码
    from app01.models import UserInfo  # 把数据库导入进来
    def login(request):
    
        # 定义一个全局变量当第一次进来获取页面的时候,不显示html变量的信息
    
        
        error_msg = ""
    
        if request.method == "POST":
    
            # 1, 第二次进来的时候是POST请求要获取用户输入的用户名和密码
    
             new_email = request.POST.get("email")
    
             new_pwd = request.POST.get("pwd")
    
            # 2, 从数据库中读取数据并校验用户输入的是否合法
              ret_obj = UserInfo.objects.filter(email= new_email, pwd= new_pwd)
            # 判断匹配是否成功
            if ret_obj:    # 此时如果匹配成功,得到的是匹配的对象
    
                # 如果匹配成功,就说明存在该用户,让用户执行可执行得到操作页面
                return redirect("/index/")  # 跳转到index这个页面,同网站跳转用绝对路径
        
            # 假如没有匹配成功就要给用于提示页面
    
            error_msg = "邮箱或者密码不正确 "
        # 3, 如果是第一次进来,用户需要获得一个登录页面,这时是一个get请求
    
         return render(request, "login.html", {"error_msg":error_msg})  
    
    
    
    def index(reuest):
    
          return render(request, "index.html", {"error_msg":error_msg})

     

  • 相关阅读:
    一个tomcat 增加多个端口
    转项目经理
    apicloud 解析
    七行代码搞定 任意数据库中的数据迁移
    语语
    农家设计图纸
    日期再总结
    X删除数据表的新用法
    c#中各类日期的计算方法,收藏
    IIS 7.5 高并发参数配置
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/9801817.html
Copyright © 2011-2022 走看看