Django是python下的一个代表性的web框架,一套用于开发交互式网站的工具。Django能够响应网页的请求,还能够让我们轻松的读写数据库、管理用户等。
0、安装Django
将Django安装在python的目录下,使用安装命令 pip install Django ——> 检查是否安装成功 python —>import Django—>django.get_version()
linux下的命令: cd..退到上一级目录 c: 切到c盘目录下 cd xx切到xx文件里 exit()退出
如果我们使用pycharm创建Django项目的话,使用pycharm的专业版很方便,但是如果使用的是pycharm的社区版首先Django是自己去settings中+,然后再配置一下环境变量,在我们创建startproject的时候使用的是Django-admin管理工具,系统找不到这个命令 ,而且创建一个Django项目,里面没有templates文件,也就是没有MTV中的T,需要手动加
一、创建项目
django-admin是管理工具,在安装目录下有django-admin.py django-admin.exe ,她的命令很多,可以直接输入django-admin查看
最常用的是startproject startapp
使用django-admin.py文件中的startproject命令创建一个项目mysite
Django-admin startproject mysite
查看mysite文件的目录 tree (注:如果现实不全用tree/F 命令 )
打开pycharm选择file->open->找到刚才创建的项目覆盖既可
创建的mysite项目,用社区版的pycharm是没有templates这个目录的,这个是手动添加。
这些文件的作用起着非常重要的作用
二、创建App
在pycharm的终端输入python manage.py startapp cmdb,每个Django可以包含很多App,就像一个系统有很多子系统一样,他们之间互相独立,也有联系,他们共享资源。
三、编写路由文件
根据我们的Django业务流程,当用户从浏览器发送给我们一个url请求,那么取ur中?前面的内容进行匹配(因为当get请求时url会在结尾处增加?附加上用户请求数据的,也就是Django响应一个请求时,?前面的内容与url.py文件中URLpatterns开始匹配,不会匹配get、post或数据)
我们开始写一个应用的时候,首先想好它的业务逻辑,框架先搭起来。
Django要响应我们的请求,必须先去urls.py文件;然后从urls.py文件去视图函数中,用到数据库则去数据库里获取数据,找到return部分,如果返回HTML文件,则将templates目录下的HTML文件作为参数返回浏览器,如果用到了css、js,则将static目录下的文件作为参数返回给浏览器。
下面我们首先进行路由urls.py文件的编写:
path函数具有四个参数,两个必须参数:``route``和``view`,两个可选参数:kwargs``和``name
第一个参数
route``是一个匹配 URL 的准则(类似正则表达式)。当Django响应一个请求时,它会从 ``urlpatterns``的第一项开始,按顺序依次匹配列表中的项,知道找到匹配的项。
这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf在处理请求``https://www.example.com/myapp/时,它会尝试匹配``myapp/
。处理请求``https://www.example.com/myapp/?page=3``时,也只会尝试匹配``myapp/``。
第二个参数view当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个:class:`~django.http.HttpRequest`对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。
所以我们可想而知,当浏览器中用户输入url:http://127.0.0.1:8080/index/的时候,Django要开始响应这个请求,URLconf首先将请求url去urls.py文件中开始匹配,当读到第一个path函数时,与'index/'匹配成功,然后开始调用后面的视图函数index,(视图里面放的就是呈现给用户或者说浏览器的东西)到了index函数中我们该呈现给用户或者浏览器什么样的结果呢?看下面我们如何写一个这样的结果(也叫做业务处理逻辑)
四、编写业务处理逻辑
我们在视图函数中设计我们想要给用户或浏览器的结果,这时我们先给他们返回一个字符串吧:
在这个函数的return中返回字符串必须用HttpResponse函数,不是python的规定,是Django的规定。当Django在接受到用户请求的时候,把用户请求过来的数据打包成了一个HttpRequest对象,也就是request,(这个不需要程序员自己创建,Django自动创建),request这个对象传给视图函数,视图函数在处理完相应的逻辑以后,也需要返回一个HttpReponse响应,但是HttpResponse对象是需要程序员自己创建。而这个响应,我们必须返回HttpResponseBase或者他的子类的对象。而HttpResponse则是HttpResponseBase用得最多的子类。参见这个链接:https://blog.csdn.net/xujin0/article/details/84001023
此时我们在回顾一下我们这个请求-响应的过程,
参见链接:https://www.cnblogs.com/kayb/p/7255987.html
path的两种使用: