![bfbb79d194410acd15f9f5041e93be9d.png](https://img-blog.csdnimg.cn/img_convert/bfbb79d194410acd15f9f5041e93be9d.png)
这几年,Python简直火到了天际,连房产大佬潘石屹都入坑了,看来Python还真是个毫无门槛的编程语言。Python是名副其实的胶水语言,它的强大是因为拥有超丰富的库和框架,可以应用于Web开发、GUI开发、爬虫、数据分析、移动端开发等等,只有你想不到的,没有它做不到的。
本文将带你了解“Django从0到1的过程”,手把手教你如何开发一个Django项目。
Django简介
Python下有许多款不同的 Web 框架。
Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django是一个开放源代码的Web应用框架,由Python写成。
Django采用了MTV的框架模式,目前Django的最新版本是Django3.0。
安装Django
①我们先验证下本机是否已经安装了django
在cmd命令行中输入 pip show django如果显示django的名称、版本、安装路径等信息说明已经安装成功:
![d74f6eddc41c2bf05b324c265c0c24dc.png](https://img-blog.csdnimg.cn/img_convert/d74f6eddc41c2bf05b324c265c0c24dc.png)
如果出现下面信息说明未安装django
![d228b0c2e8ad125e4145e5f4c66a3f0c.png](https://img-blog.csdnimg.cn/img_convert/d228b0c2e8ad125e4145e5f4c66a3f0c.png)
②安装django
我们使用Python的包管理工具pip命令来安装
执行以下命令:
![79d103322fe86f316775ce462dad83fd.png](https://img-blog.csdnimg.cn/img_convert/79d103322fe86f316775ce462dad83fd.png)
pip install django 最后安装完成会显示Success
也可以指定版本安装pip install django ==3.0
再次执行pip show django就可以看到Django已经安装成功了
创建Django第一个项目
-------安装完Django后,我们就可以创建第一个项目了
创建
在你想创建Django的文件夹下呼出控制台执行以下命令:
django-admin startproject mydjango
(其中mydjango 是我们的第一个Django项目的名称,任意一个名字都可以。)
进入我们的项目mydjango文件夹可以看到以下结构:
![384997f66beb38f0d3e2e17827dd79db.png](https://img-blog.csdnimg.cn/img_convert/384997f66beb38f0d3e2e17827dd79db.png)
目录结构说明:
manage.py 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
asgi.py和wsgi.py是网络通信接口 asgi是wsgi的扩展支持websocket协议settings.py 该Django的主配置文件。
urls.py 路由配置文件从T到V的规则配置。路由配置是支持正则表达式的。
创建完成以后就可以启动服务了
在项目mydjango文件夹下执行 python manage.py runserver 0.0.0.0:8000命令来启动:
在浏览器中访问127.0.0.1:8000会出现django的页面
![39cb5764a81bed16103a96085d8d30c8.png](https://img-blog.csdnimg.cn/img_convert/39cb5764a81bed16103a96085d8d30c8.png)
创建子项目
在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。
下面我们来创建子项目
进入mydjango目录下执行python manage.py startapp mydjango1来创建子项目目录结构如下:
![edb12f358c75c335b994cf16afb31a46.png](https://img-blog.csdnimg.cn/img_convert/edb12f358c75c335b994cf16afb31a46.png)
注册
创建完成子项目后需要在主项目中把新创建的项目注册一下:
在主配置文件settings.py下的
INSTALLED_APPS代码块中添加
'mydjango1.apps.Mydjango1Config’来注册新的子模块
![183b76eab2199e51325d0fc8ce73862d.png](https://img-blog.csdnimg.cn/img_convert/183b76eab2199e51325d0fc8ce73862d.png)
返回数据
![78a1b823190734885c3fe3f61b5a8adc.png](https://img-blog.csdnimg.cn/img_convert/78a1b823190734885c3fe3f61b5a8adc.png)
下面需要修改路由
在myDjango下的urls.py下添加我们在views.py中index的路由规则在头部添加引用:
from mydjango1 import views
在urlpatterns代码块里面添加:
path('index/', views.index),
![0b0727135b504ea79b21624d183b2a08.png](https://img-blog.csdnimg.cn/img_convert/0b0727135b504ea79b21624d183b2a08.png)
启动服务 并访问127.0.0.1:8000/index 页面会输出Hello Word。
返回页面
在myDjango主项目目录下创建templates文件夹存放页面。
在settings.py 文件的TEMPLATES代码块修改DIRS的值为[os.path.join(BASE_DIR, 'templates')]
![3ac325f1ed85de6495f364d1e9fc7fca.png](https://img-blog.csdnimg.cn/img_convert/3ac325f1ed85de6495f364d1e9fc7fca.png)
进入templates文件创建一个index.html
在views.py中添加一个新的函数
def indexHTML(request):
return render(request,"index.html")
在urls.py中添加indexHTML的路由规则
path('indexHTML/', views.indexHTML),
访问127.0.0.1:8000/indexHTML 就会看到我们之前创建index.html页面的内容
引用静态资源
在一个WEB项目中必不可少的就是静态资源项目我们来看下如何引入js、css以及img文件。
修改主配置settings.py文件
在STATIC_URL ='/static/' 下面添加
STATICFILES_DIRS = (os.path.join(BASE_DIR,"static"),)
#这static是指具体存放静态文件的文件夹名字
在TEMPLATES代码块下context_processors添加django.template.context_processors.static告诉页面需要使用静态文件。
在INSTALLED_APPS中添加django.contrib.staticfiles的注册。
在myDjango下创建static文件夹存放js,css,img等静态文件。
在static/js下创建一个test.js 里面添加alert(“演示Django的静态js引用”)
![3b23eb860f231cf5f0ffab8bb9d47e4e.png](https://img-blog.csdnimg.cn/img_convert/3b23eb860f231cf5f0ffab8bb9d47e4e.png)
![fe27f9a7e8dd23b40f08bdc171ab2ee4.png](https://img-blog.csdnimg.cn/img_convert/fe27f9a7e8dd23b40f08bdc171ab2ee4.png)
在访问页面是就会弹出演示Django的静态js引用 静态文件引入成功了。Css、img引入的方式和js相同。
现在已经可以引入静态资源了那如何获取后台的动态数据哪,接着往后看。
返回动态数据
在前返回页面的indexHTML的函数中的返回值render只需要加入context={}一个key-value形式的数据结构就可以向页面返回动态数据了,在页面中使用{{ }}来接收动态数据,项目演示后台向前台返回“张三今年14岁正在上初中”
后台返回添加返回值:
return render(request,"test.html",context={"name":"张三","age":14,"grade":"初中"})。
![f1cdbbe8ee49b11b01f2fc071104cf57.png](https://img-blog.csdnimg.cn/img_convert/f1cdbbe8ee49b11b01f2fc071104cf57.png)
前台接收{{ name }}今年{{ age }}岁正在上{{ grade }}
![84087231f0e43624228693132acc9b29.png](https://img-blog.csdnimg.cn/img_convert/84087231f0e43624228693132acc9b29.png)
其中name、age、grade是跟后台返回的key对应的否则无法获取到数据。
具体效果如下:
![93f650072ccb8376a430f145de09a5e7.png](https://img-blog.csdnimg.cn/img_convert/93f650072ccb8376a430f145de09a5e7.png)
作者想说:
到这里一个最简单也是最基础的DjangoWEB项目已经可以简单搭建了只要涉及到的是T和V层,但是在真正使用过程中是不可能这么简单的,项目中还需要数据库、缓存、日志、统一异常处理、权限等具体的功能集成。
这一讲主要是基础知识,想了解更多知识,欢迎私信或者下方留言噢
我们一直在~