Django框架

1.HTTP超文本传输协议

  • 8中请求方法

    • GET , POST ,HEAD ,PUT ,DELETE , TRACE ,OPTIONS ,CONNCT

  • 状态码

    • 1xx ;服务器收到请求,进一步处理

    • 2xx :正常 200 ok

    • 3xx : 重定向

    • 4xx : 请求错误 403 404

    • 5xx : 服务器错误

2.web框架

  • 本质:socket服务端

  • 功能:

    • socket收发消息 wsgi wsgiref uwsgi

    • 根据不同的路径返回不同的内容

    • 返回动态页面(字符串的替换,模板的渲染jinja2)

3.Django的MTV模式

  • Model(模型): 负责业务对象与数据库的对象(ORM)

  • Template(模板) : 负责如何把页面展示给用户

  • View(视图):负责业务逻辑,并在适当的时候调用Model和Template

  • 此外Django还有一个urls分发器,它的作用是将一个个YRL的页面请求分发给不同的view处理,view再调用相应的Model和Template

4.Django常见命令

  • 下载django

    • pip3 install django ==1.11.23 -i源地址

  • 创建Django项目

    • django-admin startproject 项目名

    • 代码创建的项目没有模板的存放文件夹,而pycharm中默认创建了.所以可以通过os.mkdir(os.path.join(BASE_DIR,'templates'))创建该路径,并在表单中的DIRS后的空列表添加拼接的路径

  • 启动Django项目

    • python manage.py runserver 0.0.0.0:80

  • 创建APP

    • 一个Django项目可以分为多个APP,用来隔离不同功能模块的代码

    • python manage.py startapp app01

5.简单使用

  • 设计url ,有对应函数 ,完成函数

6.静态文件的配置

 STATIC_URL = '/static/'  # 别名
 ​
 STATICFILES_DIRS = [
     os.path.join(BASE_DIR, 'static')
 ]
 ​
 ​
 STATICFILES_DIRS = [   #按照列表的顺序进行查找
     os.path.join(BASE_DIR, 'x1'),
     os.path.join(BASE_DIR, 'static'),
     os.path.join(BASE_DIR, 'x2')
 ]  

7.登陆的实例

  • form表单

    • action 提交的地址 method post

    • input 需要有name

    • submit 提交的按钮或者input

    • 目前提交post请求,注释一个csrf 中间件

      •  MIDDLEWARE = [
            'django.middleware.security.SecurityMiddleware',
            'django.contrib.sessions.middleware.SessionMiddleware',
            'django.middleware.common.CommonMiddleware',
            # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
            'django.contrib.messages.middleware.MessageMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
         ]
      • `前端模板 http://www.jq22.com

8.app

  • 新建APP

    • python manage.py startapp app名称

  • 注册APP

    • 在settings中

    •  INSTALLED_APPS = [
       
          'app01',  
          'app01.apps.App01Config', # 推荐写法
       ]
  • 目录

    • admin.py django admin

    • apps.py app的信息

    • models.py 模型 model 跟数据库有关

    • views.py 写函数

9.orm

  • 使用mysql数据库的流程

  • 创建一个mysql数据库;

  • 在settings中配置数据库:

     DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql',   # 引擎
             'NAME': 'day53', # 数据库名称
             'HOST': '127.0.0.1', # IP
             'PORT': 3306, # 端口号
             'USER': 'root', # 用户名
             'PASSWORD': '123' # 密码
        }
     }
  • 使用pymysql模块连接mysql数据库。

    写在与settings同级目录下的init.py中

     import pymysql
     pymysql.install_as_MySQLdb()
  • 写对应关系,在app下的models.py中写类。

     class User(models.Model):
         username = models.CharField(max_length=32)  # username varchar(32)
         password = models.CharField(max_length=32)  # password varchar(32)
  • 执行数据库迁移的命令

    python manage.py makemigrations # 记录下models.py的变更记录

    python manage.py migrate # 变更记录同步到数据库

Django框架篇的更多相关文章

  1. Django 框架篇(四) : 视图(view)详解 以及 路由系统(url)

    |--Django的View(视图) |-- CBV和FBV: |-- 给视图增加装饰器: |-- request对象: |-- response对象: |-- Django的路由系统(url): | ...

  2. Django框架之第五篇(模板层) --变量、过滤器、标签、自定义标签、过滤器,模板的继承、模板的注入、静态文件

    模板层 模板层就是html页面,Django系统中的(template) 一.视图层给模板传值的两种方法 方式一:通过键值对的形式传参,指名道姓的传参 n = 'xxx'f = 'yyy'return ...

  3. Python学习—框架篇之初识Django

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

  4. Django框架【基础篇】

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  5. 框架----Django框架(基础篇)

    一.基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: pyt ...

  6. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  7. Django框架之中间件与Auth

    Django框架之中间件与Auth模块一 cbv加装饰器 -先导入:from django.utils.decorators import method_decorator -1 可以在方法上加装饰器 ...

  8. 基于Django框架对MongoDB实现增删改查

    在上一篇中,咱们已经实现了Scrapy框架爬取数据,并且存储到Mongodb数据库, 接下来呢,,,,,,,,,,,,, 咱们就要对这些数据进行操作. 目标:从Mongodb数据库取出数据,通过Dja ...

  9. Python学习笔记_04:Django框架简介

    目录 1 什么是Django? 2 Django框架的开发环境搭建 3 Django操作MySql数据库简介 4 功能强大的Django管理工具应用 1 什么是Django? Django是应用于We ...

随机推荐

  1. 【LeetCode】课程表

    [问题]现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程.例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量 ...

  2. Python之日志处理(logging模块)转载

    本人主要做一个知识的归类与记录,如是转载类文章,居首都会备注原链接,尊重原创者,谢谢! 此文转载原链接:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 ...

  3. nested exception is java.lang.IllegalArgumentException: warning no match for this type name: res [Xlint:invalidAbsoluteTypeName]

    注:内有单词(sping)写错,请忽略,不影响程序运行 运行时报错: Exception in thread "main" org.springframework.beans.fa ...

  4. cf1228 D Complete Tripartite(哈希)

    题意: 无向简单图,无自环,无重边,n个点,m条边,请你将这n个点分为3个互相没有交集的集合.并且满足以下条件: 1.同一个集合中的任意两点之间没有边. 2.每个点都要与除了它这个集合以外的所有点相连 ...

  5. [WesternCTF2018]shrine

    0x00 知识点 SSTI模板注入: 模板注入涉及的是服务端Web应用使用模板引擎渲染用户请求的过程 服务端把用户输入的内容渲染成模板就可能造成SSTI(Server-Side Template In ...

  6. 19 01 11 javascript 获取某一种元素(所有的标签) 以及字符串处理的方法

    获取元素方法二 可以使用内置对象document上的getElementsByTagName方法来获取页面上的某一种标签,获取的是一个选择集,不是数组,但是可以用下标的方式操作选择集里面的标签元素. ...

  7. arp攻击 (可查看同一局域网他人手机照片)

    国家法律一定要遵守,知识要用在对的地方. 本贴只为了和大家交流学习,请勿用在其他地方,损害任何人的利益. 今天我,来说一下arp攻击的原理和教程 原理什么的还是自行百度好,因为专业的说明是严谨而又经得 ...

  8. Java IO流操作 (I)

    1.FileWriter 写数据---输出流---由控制台向文件中写数据 import java.io.FileWriter; import java.io.IOException; /* * 写数据 ...

  9. == 与 equals区别(HashCode方法)

    1:==分析 1.2:基本类型比较 判断基本类型的数值是不是相等 1.3:对象类型比较 判断两个引用是不是指向同一个对象,即内存地址是不是相等. 2:equals分析 来判断对象内容是不是相等,一般有 ...

  10. MySQL各种存储引擎对比总结

    1.MyISAM 是MySQL5.5版之前默认的存储引擎,特点:数据文件和索引文件可以放置在不同的目录,平局分布IO,获得更快的速度.不支持事务,不支持外键. 2.InnoDB 是 MySQL5.5版 ...