day60
内容回顾:
1. HTTP协议:
1.请求(浏览器发给服务端的消息——request)
请求方法 URL 协议版本\r\n
k1:v1\r\n
k2:v2\r\n
\r\n
请求体 —— 》 可以有,可以没有 GET请求没有
2. 响应(服务端返回给浏览器的消息——response)
协议版本 状态码 状态码描述符\r\n
k1:v1\r\n
k2:v2\r\n
Content-Type: text/html;charset=utf8;
\r\n
响应体 —— 》 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 协议版本\r\n
k1:v1\r\n
k2:v2\r\n
\r\n
请求体 —— 》 可以有,可以没有 GET请求没有
2. 响应(服务端返回给浏览器的消息——response)
协议版本 状态码 状态码描述符\r\n
k1:v1\r\n
k2:v2\r\n
Content-Type: text/html;charset=utf8;
\r\n
响应体 —— 》 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;
}

python全栈开发day60-django_app ORM 完整登录案例的更多相关文章

  1. python 全栈开发,Day49(超链接导航栏案例,background,定位,z-index,iconfont使用)

    昨日内容回顾 浮动:是css中布局最多的一个属性 有浮动,一定要清除浮动 浮动不是一个元素单独浮动,要浮动一起浮动 清除浮动四种方式: 1.给父盒子添加高度,一般导航栏 2.给浮动元素后面加一个空的块 ...

  2. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  3. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  4. Win10构建Python全栈开发环境With WSL

    目录 Win10构建Python全栈开发环境With WSL 启动WSL 总结 对<Dev on Windows with WSL>的补充 Win10构建Python全栈开发环境With ...

  5. python全栈开发中级班全程笔记(第二模块、第四章(三、re 正则表达式))

    python全栈开发笔记第二模块   第四章 :常用模块(第三部分) 一.正则表达式的作用与方法 正则表达式是什么呢?一个问题带来正则表达式的重要性和作用      有一个需求 : 从文件中读取所有联 ...

  6. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

  7. python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)

    昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...

  8. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  9. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  10. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

随机推荐

  1. C++怎么实现线程安全

    muduo库学习笔记1-C++多线程系统编程 网上都说这本书很适合初学者入门学习, 我今天开始准备从头再来; 第一章线程安全的对象管理 对象的生与死不能由对象自身拥有的mutex(互斥器)来保护; 如 ...

  2. exiting pxe rom 无法启动

    背景 我这是给人装了多少次机器了,上千次不敢说,几百次是有了.有个奇怪现象,为什么每次总有新的问题呢,极少能一次成功的.除了让我涨了见识,没想到其他的用处.程序员修电脑,搞笑吧,还有找我修洗衣机的,说 ...

  3. luci 中require函数包含的路径

    在 lua 脚本中常用的包含某个文件就是 require 函数. 例如: #!/usr/bin/lua                     // 表明使用的是lua脚本,像shell脚本一样 lo ...

  4. 缓存系列之三:redis安装及基本数据类型命令使用

    一:Redis是一个开源的key-value存储系统.与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串.哈希表.链表.集合.有序集合以及基于这些数据类型的相关操 ...

  5. dig常用命令

    Dig是域信息搜索器的简称(Domain Information Groper),使用dig命令可以执行查询域名相关的任务. ###1. 理解dig的输出结果 $ dig chenrongrong.i ...

  6. T-SQL ORDER BY子句 排序方式

    MS SQL Server ORDER BY子句用于根据一个或多个列以升序或降序对数据进行排序. 默认情况下,一些数据库排序查询结果按升序排列. 语法 以下是ORDER BY子句的基本语法. SELE ...

  7. Where is NuGet in VS2017 Community?

    问题:在VS2017中找不到NuGet 回答:https://stackoverflow.com/questions/43702484/where-is-nuget-in-vs2017-communi ...

  8. Confluence 6 指定日志选项和已知问题

    指定 Confluence 日志选项 这里是一些特定的日志配置,你可能在对问题进行调试的时候需要. 在日志中记录数据库使用的 SQL 查询请求 你可能希望增加日志的中的内容,记录 Confluence ...

  9. Confluence 6 配置自动备份

    希望配置 Confluence 备份: 进入  > 基本配置(General Configuration) > 备份管理(Backup administration). 选择 编辑(Edi ...

  10. 恢复误删的DB table数据

    由于一时手误输入了 DELETE FROM TABLE WHERE age REGEXP '\d';导致这个表的数据被删除 解决方法: 登录mysql,查看目前的binlog文件 mysql> ...