什么是软件框架
软件框架(Software framework),软件框架其实就是将代码放到一个我们看不到的容器中,规定架构。当我们使用的时候直接调用。
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
cs模型
cs模型: c --- client的意思 s --- server的意思
bs模型
bs模型: b --- browser的意思 s --- server的意思
框架的雏形
from socket import *
def handler_client(client_socket):
# 就是客户端(浏览器给我们发送的请求)
request = client_socket.recv(1024)
print(request)
#就是服务器给浏览器返回的相应信息 response
client_socket.send(b'HTTP/1.1 200 OK \r\n\r\n')
client_socket.send(b'i love you!')
def main():
#创建socket 就是买来一部手机
myscoket = socket(AF_INET,SOCK_STREAM)
#给手机办卡
myscoket.bind(('',8888))
#设置手机最大监听数
myscoket.listen(5)
while True:
#等待链接,等人给打电话
client_socket,client_info = myscoket.accept()
handler_client(client_socket)
client_socket.close()
#只有当此脚本文件执行的时候,才会调用main函数,如果作为模块去用,main函数不执行
if __name__ == '__main__':
main()
url
统一资源定位符。是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名.
第一部分:http代表协议
第二部分:finance.sina.com.cn 代表域名,也就是新浪财经web服务的ip和端口
第三部分:路径,看起来貌似什么都没有,其实它是‘/’代表根路径
完善框架雏形代码
def handler_client(client_socket):
# 就是客户端(浏览器给我们发送的请求)
request = client_socket.recv(1024)
print(request)
# 伪代码:
if 路径 == '/':
function1()
if 路径 == '/news/':
function2()
if 路径 == '/girls/':
function3()
def function1():
client_socket.send(b'HTTP/1.1 200 OK \r\n\r\n')
client_socket.send(b'返回首页!')
def function2():
client_socket.send(b'HTTP/1.1 200 OK \r\n\r\n')
client_socket.send(b'新闻')
def function3():
client_socket.send(b'HTTP/1.1 200 OK \r\n\r\n')
client_socket.send(b'美女')
MVC简介
1)大部分开发语言中都有MVC框架
2)MVC框架的核心思想是:解耦
3)降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
4)m表示model,主要用于对数据库层的封装
5)v表示view,用于向用户展示结果
6)c表示controller,是核心,用于处理请求、获取数据、返回结果
MTV简介
1)Django是一款python的web开发框架
2)与MVC有所不同,属于MTV框架,MTV是根据MVC变异而来
3)m表示model,负责与数据库交互
4)v表示view,是核心,负责接收请求、获取数据、返回结果
5)t表示template,负责呈现内容到浏览器
应用文件作用
admin.py:这个文件用于在admin后台注册模型类
models.py:书写对应的数据库模型类
views.py:用于书写我们的控制逻辑
_init _.py:可以对应用进行初始化,可以让应用的目录作为包来使用
tests.py:用来做测试使用
migrations :用来存放数据模型迁移文件
django一次会话的实现:
1)、打开终端,进入到我们的虚拟环境python3
2)、在我们预先准备好的项目管理文件夹django下创建新的项目testdjango
3)、进入到我们的项目文件夹下创建我们第一个应用test1
4)、使用pycharm打开我们的项目
5)、在pycharm中将虚拟环境设置为我们的python3虚拟环境
6)、对项目进行基本设置settings
将我们第一个app添加到INSTALLED_APPS 中
7)、配置路由
在项目设置目录下,也就是和项目同名的那个目录下有个urls文件,这个就是我们的路由配置文件,在文件中会有这样的代码
urlpatterns就是我们的路由,我们可以在这个路由当中去配置我们的第一个路由,其实就是一个url方法,这个方法有四个参数
l 正则 浏览器网址输入网址发送请求后,会通过这个正则去匹配url中的路径
l view函数 如果正则匹配网址的路径成功就会把请求传给相对应的这个函数处理
l 可选参数 一般不用
l name 代表反向解析(软连接)名字
那么,我们就可以向,一般网站首页都是直接域名后面什么都没有就是返回首页,比如:https://www.baidu.com就是百度的首页,那么我们可以想象,在百度的后台肯定是有配置这个路径的,这个路径什么都没有,那么就是‘’空字符串,因此,我们可以尝试去配置我们的首页路由
8)、书写view视图处理函数
当我们配置好路由之后,假想我们现在的网站输入了一个域名,后面没有加任何的路径,那么代表是空,这样的话,首先请求进来会到我们的urls里面找路由,当然就找到我们刚才配置的路由,这样的话,正则进行验证,确实是匹配的。就会去找第二个参数,那么第二个参数就是我们要写的view视图函数,所以,我们接下来在应用当中,有个views.py文件,这个文件就是专门用来写视图处理函数的。
需要导入HttpResponse这个模块,进行返回数据
9)、urls导入书写的视图
最后,我们在urls当中导入我们刚写好的view视图
10)、运行我们的服务测试
运行服务两种方式,可以在终端中进入我们的项目,在项目文件夹下使用命令运行服务:python manage.py runserver
项目默认会在本机8000端口运行