Django入门-项目创建与初识子应用
一、预备知识
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入门-项目创建与初识子应用相关推荐
- iOS开发入门——项目创建
iOS开发入门--项目创建 1.新建项目 2.项目模版 3.项目配置 配置好之后点下一步就好.... 4.确定存储位置 5.启动模拟器 这就是第一个空白项目的创建过程,后面将持续更新iOS开发学习经历 ...
- Django 入门项目案例开发(上)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...
- Django 入门项目案例开发(下)——创建项目应用及模型类
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟 ...
- Django入门项目
刘江的博客 个人博客和教程网站:www.liujiangblog.com欢迎访问! </div><!--end: blogTitle 博客的标题和副标题 --> <div ...
- Django入门项目实践(中)
4.用户账户 4.1 让用户能够输入数据 添加新主题 # untitled/learning_logs/forms.py from django import formsfrom .models im ...
- python websocket django vue_Python Django Vue 项目创建过程详解
1.创建项目 打开pycharm 终端,输入如下,创建项目 # 进入pycharm 项目目录下 cd pyWeb django-admin startproject pyweb_dome # pywe ...
- django入门项目图书管理
该项目利用了django实现了对图书的增删改查操作 步骤 1.在setting下配置好静态文件路径 STATICFILES_DIRS=[os.path.join(BASE_DIR,'static'), ...
- Django 入门项目案例开发(中)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. 昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务 ...
- Django入门(二) 理解Django生命流程周期
接上篇:Django入门-项目创建与初识子应用 项目的数据库模型 这里我们先使用sqlite类型的数据库,后面在进行改变 创建数据库模型 名词: ORM(Object Ralational Mappi ...
最新文章
- 049_Number对象
- notepad拼心形_bat心形代码
- 有人在代码里下毒!慎用 pip install 命令
- 骚操作!有了这款神器,轻轻松松用Python写APP!(文末彩蛋)
- xmanager 使用
- python字符串加减乘除_python 数字字符串加减乘除-女性时尚流行美容健康娱乐mv-ida网...
- C语言学习之编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf函数输出这两个字符
- reactor模式:多线程的reactor模式
- spring javafx_带有Spring的JavaFX 2
- 三星Galaxy Fold 2渲染图曝光:怎么折是个问题
- 如何weak link一个framework (高版本兼容低版本)
- r语言熵权法求权重(真实案例完整流程)
- 浏览器开发者工具,自己设置屏幕分辨率调试(chrome)
- 优秀LOGO设计的规则
- sim3在orbslam2与gis中的应用
- 网络存储服务器系统价格比较,【网络存储器报价】四款不同的网络存储器,你会选择那一款?...
- 学测绘和计算机,测绘工程就业方向与前景 女生学测绘好找工作吗
- 【obs】转载:OBS直播严重延迟和卡顿怎么办?
- HDD深圳站:全生命周期赋能开发者,华为引领应用生态升级
- apicloud安卓更新,新版本不能覆盖旧版本的问题及解决方案
热门文章
- 学科分类号4个空都填什么_高中英语完形填空的5个解题小技巧,大家都在用
- 上传图片方向不对 php,php-上传图片时出现错误,没有这样的路径或目录
- python入门区块链技术_区块链入门教程
- python 字符串 数字_Python基础教程:数字、字符串
- 二十四、数据挖掘时序模式
- 六、数据的基本统计描述
- 一行代码搞定Python逐行内存消耗分析
- Python开发者的完美终端工具
- 卧槽!12个杭州阿里高学历女员工被初中男骗财骗色1900多万!骗子冒充有钱佬!开豪车保时捷勾搭妹子,法院判无期徒刑!...
- 同时存多个变量缓存 微信小程序_CPU缓存一致性协议MESI,memory barrier和java volatile...