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})

Django的各种初识的更多相关文章

  1. Django补充及初识Ajax

    Django创建一对多表结构 首先现在models.py中写如下代码: from django.db import models # Create your models here. class Bu ...

  2. Django学习手册 - 初识django

    初识: django简介: 开放源代码的web应用框架 由python语言编写的. 一.框架基本概念(核心): 以上这个图就是 django 的核心逻辑图,必须熟记.后续的所有编程都跟这个图的逻辑息息 ...

  3. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  4. Django 下载和初识

    Django Django官网下载页面 安装(安装最新LTS版): pip3 install django==1.11.9 创建一个django项目: 下面的命令创建了一个名为"mysite ...

  5. Django学习手册 - 初识自定义分页

    核心: <a href='http://127.0.0.1:8000/index-%s'>%s<a> 自定义分页 1.前端处理字符 后端的字符  return render(r ...

  6. web框架之Django<一、初识>

    一.什么是web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的 ...

  7. web框架和Django框架的初识

    1,web框架的原理 1.1>c/s架构和b/s架构 1>c/s客户端模式 2>B/S浏览器模式-----web开发(web开发开的是B/S架构) 1.2>web开发的本质 1 ...

  8. Django REST framework 初识

    一.官网快速实例 quickstart # 安装 RESTful pip install djangorestframework 二.序列化 models.py from django.db impo ...

  9. Django基础之初识视图

    编写视图 一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应. 响应可以是一个网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一 ...

随机推荐

  1. python 监控oracle 数据库

    import cx_Oracle import os db = cx_Oracle.connect('**********') print "Show Oracle Version: &qu ...

  2. 【二分贪心+精度问题】F. Pie

    https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/F [题意] 给定n个已知半径的披萨,有m个人要分这n个披萨 要求每个人分到的面积 ...

  3. google play上获取apk文件

    先说一种测试不通过的方法(chrome浏览器添加Direct APK downloader拓展程序),浪费了我很多的时间,结果发现根本用不了,记录一下过程给大家参考. 使用chrome浏览器,点击左上 ...

  4. Codeforces917D. Stranger Trees

    $n \leq 100$的完全图,对每个$0 \leq K \leq n-1$问生成树中与给定的一棵树有$K$条公共边的有多少个,答案$mod \ \ 1e9+7$. 对这种“在整体中求具有某些特性的 ...

  5. linux awk常用命令【转载】

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  6. 为什么utf8占用3个字节

    UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的表示顺序.有关Unicode为什么会出现就不叙述了,Unicode是针对所有计算机的使用者定义一套统一的编码规范, ...

  7. 洛谷—— P1186 玛丽卡

    https://www.luogu.org/problem/show?pid=1186 题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长 ...

  8. 2017多校Round3(hdu6056~hdu6066)

    补题进度:7/11 1001 待填坑 1002 待填坑 1003(set) 题意: 给定长度为n(n<=5e5)的数组(是n的一个排列)和一个整数k(k<=80),f[l,r]定义为区间[ ...

  9. Codechef-CHEFPRAD(找事件点+贪心)

    题意: 定义一个函数maxMatching(A,B,y),其输入包含两个整数数组 A 和 B 以及一个整数 y,返回一个整数. 记数组 A 的大小为 N,数组 B 的大小为 M.考虑一个由 {a1, ...

  10. Java面试题总结之Java基础(三)

    1.JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try 块中可以抛出异常吗? 答:Java 通过面向对象的方法进行异常处理, ...