django 01

1.定义

可执行的二进制指令的集合。用于执行一定功能的计算机程序。

2.作用:

  解决实际生活中的问题

3.核心:

数据处理

4.处理方式:

增删改查(crud)
个软件在处理流程上不一定相同

5.从使用环境分类:

>.单机
>.网络

6.从架构分类

>.C/S   客户端——服务器
>.B/S   浏览器——服务器

网站和软件的区别

1.网站:

>.可以在客户端通过浏览器可以直接访问。

>.网站和软件的区别
网站包含软件,软件不能直接表示网站。

>.分类
静态:信息展示。
动态:访问到网页数据,并且可以数据处理。

>.AJAX:异步刷新技术,可以在不刷新网页的情况下从服务器获取数据;通过DOM操作将数据展示到网页中。

2.web

>.即为广域网

>.网络分层
局域网/城域网/广域网

>.web软件
动态网站网络软件,即为B/S结构的网络软件

3.web开发

>.对B/S结构的软件进行功能开发

步骤:
==================================

>.需求分析

>.软件结构设计

>.开发

>.测试

>.部署和维护


软件结构

1.处理结构:

>.软件界面

>.数据处理

>.数据存储

2.扩展结构

>.界面——程序控制界面

>.数据处理——程序控制数据库

>.数据存储

3.软件结构设计:分层模型

>.软件代码可以在设计过程中分成不同的层次结构,主要区别为上下层代码关系。
|--myproject/               项目文件夹
    |--main.py              程序入口
    |--menu.py              界面
    |--service.py           程序的业务处理类、服务类,用于功能处理
    |--data.py              数据处理类,用于对数据增删改查

|–mysql 数据存储,数据仓库

>.开发原则:
上层代码可以调用下层代码的变量、函数、方法;
下层代码尽可以返回结果给上层代码使用
同层之间可以互相调用
不可以跨蹭调用

web软件

>.web服务器通过web接口来连接程序

>.web接口是实现了wsgi网关协议的接口
wsgi:   web service gateway interface

>.python中的web开发,一般来说底层都实现了wsgi的web接口,以实现浏览器访问服务器资源的数据。

1.定义一个web接口:

from wsgiref.simple_server import make_server

def app(env,response):
    #设置响应头:描述相应数据的内容
    response("200 OK",[('Content-type','text/html')])
    #返回数据
    return [b'<h1>hello</h1>']

#导入一个创建服务器的内建函数


#开始创建服务器
if __name__ == "__main__":

    h_server = make_server('',8000,app )
    print("server is starting...")

    #启动服务
    h_server.serve_forever()
    #注意本行是空行 一定要留

.上边的程序段就等于设置了一个web接口,通过运行此程序,就可以通过浏览器访问了,本地访问http://localhost:8000/就可以访问数据了


2.数据分发

from wsgiref.simple_server import make_server

def app(env,response):
    #设置响应头
    response('200 OK', [('Content-type','text/html')])
    #打印一个参数
    print(env['PATH_INFO'][1:])
    path = env['PATH_INFO'][1:]
    #判断不同的url地址,调用不同的参数处理
    if path == 'liangshi':
        return liang_shi(env, response)
    elif path == 'sichou':
        return si_chou(env,response)

    #返回默认值
    return [b'<h1>coco</h1>']


#定义二级处理函数
#访问粮食
def liang_shi(env, response):
    return [b'<h1>liangshi</h1>']

#访问丝绸
def si_chou(env, response):
    return [b'<h1>sichou</h1>']


if __name__ == '__main__':
    http_server = make_server('', 8000,app)
    print("server is starting...")

    http_server.serve_forever()

以上程序相当于接口的分发数据方式简单实现

Django

1.基本概念

由python编写的,专门用于快速、高效的开发web应用程序的框架。

框架:是模块的集合,具备模块的所有功能,也有简单的功能处理流程,方便开发人员对于对应流程自动化处理。框架也会根据不同的功能流程具有特定的软件结构模式,也算是一个独立的软件。

类似于pygame,是Python中代码块的集合。一般包含多个变量、函数、类型。

2.特点

先进的MVT处理模式
自动化的项目构建管理方式
完善的数据模型处理
强大的后台管理系统
优秀的ORM操作模块
优雅的模板操作封装
优异的缓存支持
完美的表单操作封装
内建sqlite数据库,并且支持其他各种类型数据库。

3.Django中的MVT处理模式

关于web软件的架构模式

MVC和MVT

MVC:全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    MVT:
        m表示model,负责与数据库交互
        v 表示view,是核心,负责接收请求、获取数据、返回结果
        t 表示template,负责呈现内容到浏览器

4.安装Django

最新版 2.0.X 学习和测试
最流行 1.8~1.11 公司常用
默认安装最新版

安装指定版使用:

    pip install django==1.11

5.项目搭建

创建项目
cmd中
dango-admin startproject 项目名称(也是目录名称)

    >>.目录结构:
    |-- myproject/   项目的主目录,存放项目中所有文件的文件夹
        |-- myproject/  项目的主项目/根项目,用来管理所有的项目
            |-- __init__.py 包定义文件定义了存放这个文件的文件夹是一个python包
            |-- settings.py 项目中所有的配置信息存放的模块,配置模块
            |-- urls.py 路由模块,定义url地址和访问的处理函数之间的映射关系
            |-- wsgi.py 实现了wsgi网关协议的模块,表示Django项目支持wsgi网关协议
        |-- manager.py  项目的命令行支持模块,可以在命令行执行不同的命令实现不同的功能

.测试项目
在cmd进入项目目录

    python manage.py runserver

之后在浏览器中访问

    localhost:8000

即可查看运行成功与否

    >.创建跟项目视图

        >>.创建一个view.py在跟目录
            在此模块中创建一个视图处理函数,返回一个数据

        >>.配置路由应用
            myproject/urls.py 模块是路由模块
            为此模块添加一个路由映射地址



        >>.运行程序

.开发二级页面
根目录执行命令行:

    dango-admin startapp sec_index(二级网页/网站名称)

二级页面目录结构:

    |-- myblog/ 模块的根目录;二级网站的根目录
        |-- migrations/ 数据库文件存放的文件夹[数据库部分细讲]
        |-- __init__.py 包定义文件
        |-- admin.py 后台管理文件[后台管理系统细讲]
        |-- apps.py 模块名称定义文件
        |-- models.py   数据模型定义文件
        |-- test.py 测试文件——一般用不上
        |-- views.py    视图模块,定义视图处理函数

.将二级页面的模块应用添加到根项目中:

    修改myproject/settigs.py
    INSTALLED_ADD 选项列表中,添加sec_index

.编写二级目录的视图处理模块

.配置路由模块

    sec_index创建一个路由模块urls.py

将模块中的路由添加到根目录路由模块中

根目录的路由是主路由
二级页面和目录的路由是子路由

[

Leave a Reply

Your email address will not be published.


*


*