Django-入门
1,什么是Django
快速开发web的框架,底层封装了大量的模块(一堆函数的集合),构成了Django框架(一堆模块的集合,提供了基本的特定的复杂功能和处理流程)
2,为什么要用Django
常规的web项目开发,底层通过wsgi网关接口进行请求和服务的处理,但是底层wsgi进行代码建设的效率太低,所有要搭建web框架来提升开发效率。Django是不二人选。。。。
3,Django的组成部分
a,用于进行数据持久化的ORM模块()
b,用于进行URL地址分配的路由模块
c.用于进行模板页面处理的模板系统
d,用于进行表单操作的表单模型
e,用于进行性能突破的缓存系统
4,Django的架构模式
MVC架构模式
软件是用来进行数据处理的,数据我们用modle来表示,根据软件的三层结构模型,视图部分用view来表示,在view中,我们可以和用户进行数据交互,交互的数据被提交到服务器,服务器根据用户提交的数据,经过控制器controller判断并移交给合适的函数进行处理的过程,称为MVC架构模式
MVT架构模式
Django在处理的过程中,对于经典的MVC架构模式并不是非常认同,在实际项目开发中控制器controller起到的作用有限,所以Django将控制器Controller也进行了封装,但同时扩展了视图View部分,增加了模板功能,实现了前端网页的复用,SO,Django的架构模式 更符合MVT架构模式
5,Django可以做什么?
在实际的大(中)型web项目开发过程中,Django起到了很大作用
6,安装Django
python2中 命令行输入
python2 -m pip install django
python3中 命令行输入
python3 -m pip install django
7,如何创建Django项目
a,命令行切换到需要创建Django的目录下
django-admin startproject mysite(项目名称)
目录的结构:
|-- mysite/#项目文件夹
|--mysite/ #项目根模块
|--__init__.py #项目模块定义文件
|--settings.py #Django项目配置文件
|-- urls.py #网站路由配置文件
|-- wsgi.py # wsgi网关接口操作文件
|-- manage.py #项目执行模块~命令行执行命令时使用,不要修改
b,创建的Django进行测试
需要进入mysite/目录下
python manage.py runserver
出现端口号-->运行成功!!
8,创建Django模块应用
a,进入mysite目录下
django-admin startapp blog(模块名称)
模块目录:
|--mysite/
|-- mysite/
|-- manage.py
|-- myblog/ #模块应用目录
|-- migrations/#数据库数据持久化配置
|-- admin.py#后台管理操作文件
|-- apps.py#应用名称配置文件
|-- models.py#应用模型类定义文件
|-- tests.py#应用功能测试文件
|-- views.py#应用视图文件
b,将创建的myblog模块加入到Django根模块(mysite)中
打开mysite/mysite/settings.py
找到INSTALLED_APPS = [
'django.contrib.admin',
'myblog',
]
c,创建视图处理函数
打开myblog/views.py
# 引入需要的模块
from django.http import HttpResponse
# 定义处理函数
def index(requests):
return HttpResponse("hello myblog!")
d,配置模块应用的路由映射
在Myblog目录下创建urls.py文件
#引入需要的模块
from django.conf.urls import url
from . import views
# 定义路由映射关系
urlpatterns = [
url(r'^$',views.index,name="index")
]
e,配置项目主路由
打开根模块mysite/mysite/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
urlpatterns = [
url(r'^admin/',admin.site.urls),
url(r'^blog/',include('myblog.urls'))
]
f,运行测试
输入:localhost:8000/blog
结果: hello myblog!