一、预备知识

HTTP协议的认识

HTTP协议就是客户端和服务端之间数据传输的格式规范,格式简称为“超文本传输协议”。

  • 基于TCP/IP
    (1)HTTP是一个属于应用层的面向对象的协议
    (2)HTTP协议工作于客户端-服务端架构上。

  • 基于请求-相应模式
    (1)浏览器为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
    (2)WEB服务根据接收到的请求后,向客户端发送响应信息。

为什么说HTTP协议是无状态协议?

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。

怎么解决HTTP协议无状态协议?

无状态协议解决办法:

  • 通过Cookie
  • 通过Session会话保存

Http请求中常见的请求方式

根据 HTTP 标准,HTTP 请求可以使用多种请求方法。

  • HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
  • HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

MVC模式和MTV模式

MVC 模式
MVC 就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式
连接在一起,模型负责业务对象与数据库的映射( ORM ),视图负责与用户的交互(页面),控制器接受用户
的输入调用模型和视图完成用户的请求。

MTV 模式
MTV模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,在
Python的世界中,基本(除了Pylons)都使用了 MVC 的变种 MTV (Model Templates View 模型-模板视图)。
Django 的MTV分别是值:

  • M 代表模型(Model): 负责业务对象和数据库的关系映射( ORM )。
  • T 代表模板 (Template):负责如何把页面展示给用户( html )。
  • V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
    除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

二、Django 快速入门

Django框架介绍

什么是框架?

  • 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,
  • 框架的功能类似于 基础设施 ,提供并实现最为基础的软件架构和体系
  • 通常情况下我们依据框架来实现更为复杂的业务程序开发二个字,框架就是程序的骨架

Python 中常见的框架有哪些?

  • 大包大揽 Django 被官方称之为完美主义者的Web框架。
  • 力求精简 web.py 和 Tornado
  • 新生代微框架 Flask 和 Bottle

Django 框架介绍

  • Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。
  • 由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而无需重新创建轮子。
  • 免费的和开源的。
  • 被官方称之为完美主义者的Web框架。
    官方网址:django

Django 框架的特点

Django 可以使用什么Python版本?


Django 的开发版本

Django 的安装

如果速度慢的话可以-i 指定国内的源,
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/

在线安装Django,指定版本安装
pip install django

三、Django快速入门 —后台管理

第一步:创建并运行Django项目


运行

python manage.py runserver

访问http://127.0.0.1:8000/

第二步:应用的创建和使用

(1) 创建第一个应用程序

  • Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。
  • 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
  • 创建应用的命令:
python manage.py startapp bookApp

启用后台Admin 站点管理

  • 站点分为“内容发布(后台管理)”和“公共访问(前台管理)”两部分
  • “内容发布”的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力的工作。
  • 因此, Django 会根据定义的模型类完全自动地生成管理模块
    Django 框架中有一个非常强大的应用功能: 自动管理界面。 常被Web平台管理者使用,去管理整个
    Web平台。
    默认情况下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下应用程序,为了后续的开发,默
    认这些应用程序都是包含在里面的。
应用程序 功能
django.contrib.admin 管理网站
django.contrib.auth 认证管理
django.contrib.contenttypes 内容类型的框架
django.contrib.sessions 会话框架
django.contrib.messages 消息框架。
django.contrib.staticfiles 管理静态文件的框架

(0). 数据库迁移
使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。

python manage.py makemigrations
python manage.py migrate





http://127.0.0.1:8000/admin

(1). 创建管理员用户

# 按提示输入用户名、邮箱、密码
python manage.py createsuperuser

  • 启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
  • 进入管理站点,默认可以对 groups、users 进行管理

    (2). 管理界面本地化
    编辑 settings.py 文件,设置编码、时区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'



(2) 编写第一个视图函数
我们来写第一个视图。打开文件 bookApp/views.py 并放入以下Python代码:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# 视图:对用户的请求(request)进行业务逻辑操作,最总返回给用户响应(reponse)
def index(request):print("用户请求的路径:",request.path)return HttpResponse('首页信息')

打开文件BookMange/urls.py,加入以下代码

from bookApp.views import index
urlpatterns = {path('admin/', admin.site.urls),path('index/', index),
}

访问127.0.0.1:8000/index/

(3) 路由规则
要在 bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py 。如下所示:

from django.conf.urls import url
from . import views
urlpatterns = [
# 当用户访问bookApp应用的主页时, 执行视图函数index,反向根据名称获取url地址;
url(r'', views.index, name='index'),
]

根据配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在该文件
添加一条 url 规则:

from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# 当用户访问的url地址以book, 请访问bookApp.urls这个url配置文件进行匹配并执行对应的视图函数.
#当用户访问请求路径为book/时,访问bookApp.urls.py子路由配置文件
url(r'book/', include('bookApp.urls')),
]

(4) 效果展示

  • 启动服务器
 python manage.py runserver

  • 访问 url 地址: http:// 127.0.0.1:8000/book/ 如果看到主页内容 图书管理系统 即成功。
  • 可以通过html将页面变得好看,改变字体大小颜色等。。。。
    编写视图的 bookApp/views.py
def index(request):print("用户请求的路径:",request.path)return HttpResponse('<h1 style="color:green">首页信息</h1>')


url() 函数介绍
Django url() 可以接收四个参数,分别是两个必选参数: regex 、 view 和两个可选参数:kwargs 、 name 。

  • regex : 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
  • view : 用于执行与正则表达式匹配的 URL 请求。
  • kwargs : 视图使用的字典类型的参数。
  • name : 用来反向获取 URL。

Django入门-项目创建与初识子应用相关推荐

  1. iOS开发入门——项目创建

    iOS开发入门--项目创建 1.新建项目 2.项目模版 3.项目配置 配置好之后点下一步就好.... 4.确定存储位置 5.启动模拟器 这就是第一个空白项目的创建过程,后面将持续更新iOS开发学习经历 ...

  2. Django 入门项目案例开发(上)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...

  3. Django 入门项目案例开发(下)——创建项目应用及模型类

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟 ...

  4. Django入门项目

    刘江的博客 个人博客和教程网站:www.liujiangblog.com欢迎访问! </div><!--end: blogTitle 博客的标题和副标题 --> <div ...

  5. Django入门项目实践(中)

    4.用户账户 4.1 让用户能够输入数据 添加新主题 # untitled/learning_logs/forms.py from django import formsfrom .models im ...

  6. python websocket django vue_Python Django Vue 项目创建过程详解

    1.创建项目 打开pycharm 终端,输入如下,创建项目 # 进入pycharm 项目目录下 cd pyWeb django-admin startproject pyweb_dome # pywe ...

  7. django入门项目图书管理

    该项目利用了django实现了对图书的增删改查操作 步骤 1.在setting下配置好静态文件路径 STATICFILES_DIRS=[os.path.join(BASE_DIR,'static'), ...

  8. Django 入门项目案例开发(中)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务 ...

  9. Django入门(二) 理解Django生命流程周期

    接上篇:Django入门-项目创建与初识子应用 项目的数据库模型 这里我们先使用sqlite类型的数据库,后面在进行改变 创建数据库模型 名词: ORM(Object Ralational Mappi ...

最新文章

  1. 049_Number对象
  2. notepad拼心形_bat心形代码
  3. 有人在代码里下毒!慎用 pip install 命令
  4. 骚操作!有了这款神器,轻轻松松用Python写APP!(文末彩蛋)
  5. xmanager 使用
  6. python字符串加减乘除_python 数字字符串加减乘除-女性时尚流行美容健康娱乐mv-ida网...
  7. C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符
  8. reactor模式:多线程的reactor模式
  9. spring javafx_带有Spring的JavaFX 2
  10. 三星Galaxy Fold 2渲染图曝光:怎么折是个问题
  11. 如何weak link一个framework (高版本兼容低版本)
  12. r语言熵权法求权重(真实案例完整流程)
  13. 浏览器开发者工具,自己设置屏幕分辨率调试(chrome)
  14. 优秀LOGO设计的规则
  15. sim3在orbslam2与gis中的应用
  16. 网络存储服务器系统价格比较,【网络存储器报价】四款不同的网络存储器,你会选择那一款?...
  17. 学测绘和计算机,测绘工程就业方向与前景 女生学测绘好找工作吗
  18. 【obs】转载:OBS直播严重延迟和卡顿怎么办?
  19. HDD深圳站:全生命周期赋能开发者,华为引领应用生态升级
  20. apicloud安卓更新,新版本不能覆盖旧版本的问题及解决方案

热门文章

  1. 学科分类号4个空都填什么_高中英语完形填空的5个解题小技巧,大家都在用
  2. 上传图片方向不对 php,php-上传图片时出现错误,没有这样的路径或目录
  3. python入门区块链技术_区块链入门教程
  4. python 字符串 数字_Python基础教程:数字、字符串
  5. 二十四、数据挖掘时序模式
  6. 六、数据的基本统计描述
  7. 一行代码搞定Python逐行内存消耗分析
  8. Python开发者的完美终端工具
  9. 卧槽!12个杭州阿里高学历女员工被初中男骗财骗色1900多万!骗子冒充有钱佬!开豪车保时捷勾搭妹子,法院判无期徒刑!...
  10. 同时存多个变量缓存 微信小程序_CPU缓存一致性协议MESI,memory barrier和java volatile...