2018-09-03-Python全栈开发day49-django初识MVC和MTV-part2

1。做一个最简单web服务器

  

from wsgiref.simple_server import  make_server

def application(environ,start_response):
    start_response('200 ok', [('Content-Type', 'text/html')])#响应头
    print('path', environ['PATH_INFO'])#打印客户端的地址
    path=environ['PATH_INFO']
    if path=='/alex':
        return [b'

404 NOT FOUND

'] return [b'

hello world

']#响应体 ,environ中包含请求信息的dict对象 http1=make_server('127.0.0.1',8080,application) print('begin http') http1.serve_forever()

2.MVC模式和MTV模式

  mvc也就是m模型,v-html文件,c-控制器

  django中的mtv模式==m数据库,t模板对象,v=各种函数

  mtv模式仅针对django,

3.django运行流程

  用户输入url-匹配到响应路径-运行响应函数-和数据库进行联系-返回响应数据

4。利用django完成一个简单应用-时间显示

  首先在pycharm中新建一个django项目,观察django文件夹,其中项目名称下有一个相同名称的文件夹,其内有:

  setting:关于项目设置

  urls:关于项目路径

  令有以应用名为文件夹名的,内有:

  admin:django自动创建的管理后台

  models:关于数据库操作

  tests:建立的测试页面

  views:放入路径触发的各类函数

  =====================================

首先,在路径中添加show_time路径

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'time/',views.show_time)
]

在views中写这个函数

def show_time(request):
    time1=time.ctime()
    return render(request,'index.html',locals()),其中request为必填项,这里面包含了客户端的信息

此时,需要返回需要渲染的数据,在templates中新建html也就是模板文件,在html中加入{{time1}},这样在将这个模板文件进行传染的时候,会自动对应变量并且生成html文件

5.django中的静态文件static

在进行路径匹配的时候,严格按照正则表达式进行,这样可以区分该运行哪个函数,当找到一个符合条件的正则时,则不再运行后面的。

==对url进行分发

  如果url过多时,可以在每个app中添加一个url文件,里面写上app的相关路径,然后在项目的url的进行分流===

 

静态文件:

  

  Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件,比如说某个html需要使用jquery进行渲染,需要js文件,当通过setting中的static路径设置好之后,django就会自动通过这里来找文件

 

STATIC_URL = '/static/'#这里自己引用时的路径 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),#告诉django的绝对路径

)
在静态文件中,只要路径写的时别名,这样django就可以直接通过绝对路径来找到文件,注意:只能按照别名来找,通过真实的名称找不到

第二种方法:

  在文件中,顶部写上

  

{% load staticfiles %}

这里时装在静态文件

  然后在引入静态文件的时候:

src={% static  jquery311.js%}也可以引入静态文件==推荐使用

如果需要使用app中的static,需要在static_url中加入app-static的路径,之后就可以引入了,

如果有多个app怎么办?

在static中根据app名称建立不同的文件,引入的时候,写上文件夹名

src={static 'blog/css/jquery'}

templates类似原理

 

6.Django控制系统

 django url

  针对不同的路径,运行不同的函数,返回不同的模板

  path(正则,函数,参数,别名)

  当使用别名的时候,django可以识别别名,并且运行正确的函数,

转载于:https://www.cnblogs.com/hai125698/p/9581634.html

你可能感兴趣的:(2018-09-03-Python全栈开发day49-django初识MVC和MTV-part2)