第一:Python的web框架介绍
Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。
第二:MVC和MTV介绍
MVC介绍:
M:model,模型,是应用程序中用于处理应用程序数据逻辑的部分,主要是负责对数据库进行读写。
V:view,视图,是应用程序中处理数据显示的部分,通常视图是依据模型中的数据创建的。
C:controller,控制器,是应用程序处理与用户交互的部分,通常控制器负责从视图中去读取数据,也向模型去发送数据。
MTV与MVC两者区别与联系:
MTV与MVC这两种模式没有根本上的区别,他们都是让复杂的程序在各个组件之间保持松耦合关系,区别只是名字不同,叫法不同而已。
MTV介绍:
M:Model(模型):负责业务对象与数据库的对象(ORM)
T:Template(模版):负责如何把页面展示给用户
V:View(视图):负责业务逻辑,并在适当的时候调用Model和Template
另外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
第三:django的流程介绍
注:本篇博客采用的是django2.0介绍
django简易流程图:
django简单安装配置
django
#安装: pip3 install django
添加环境变量
#1创建project
django-admin startproject mysite---mysite---settings.py---url.py---wsgi.py----manage.py(启动文件)
#2创建APP
python mannage.py startapp app01
#3settings配置
TEMPLATES
STATICFILES_DIRS=(
os.path.join(BASE_DIR,"statics"),
)
STATIC_URL= '/static/'# 我们只能用 STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找#4根据需求设计代码
url.py
view.py
#5使用模版
render(req,"index.html")
#6启动项目
python manage.py runserver127.0.0.1:8090#7连接数据库,操作数据
model.py
如果用pycharm可以直接建的哦!
目录详细解释:
如果用命令行创建,只会有以下几个目录:
django-admin.py startproject mysite
django-admin.py 是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每一个Django Project里都会有一个mannage.py。
manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。
用python manage.py startapp app
运行python manage.py runserver 8000 或者直接用pycharm运行
此时,django已经安装成功
现在我们就写一个例子:
mysite的urls:
fromdjango.contrib import adminfromdjango.urls import path,include
urlpatterns=[
path('admin/', admin.site.urls),
path('app01',include('app01.urls')),
]
app01的urls:
fromdjango.urls import pathfrom. import views
urlpatterns=[
path('', views.index, name='index'),
]
app01的views:
fromdjango.shortcuts import renderfromdjango.http import HttpResponse
def index(request):return HttpResponse("Hello, ylqh.")
访问:
第一个简易的django流程完成
第四:django的url(path)
URL配置(URLconf)就像Django 所支撑网站的目录。是高质量Web应用程序中的一个重要细节,其实质就是通过url指到相应的视图函数
Django可以让你设计URL,没有.php或没有.cgi要求。
url()函数可以传递4个参数,其中2个是必须的:正则和view,以及2个可选的参数:kwargs和name
urlpatterns =[
path(正则表达式, views视图函数,参数,别名),
]
参数说明:
1:正则表达式,它是一种匹配字符串或url地址的语法
2:一个可调对象,通常为一个视图函数或者一个指定视图函数的字符串。如果是简单捕获,那么捕获的值将作为一个位置参数进行传递,如果是命名捕获,那么将作为一个关键字参数。
3:可选的任意数量的关键字参数可以作为一个字典传递给目标视图。
4:可选的name参数,对你的URL进行命名,可以让你能够在Django的任意处,尤其是模板内显式地引用它。相当于给URL取了个全局变量名,你只需要修改这个全局变量的值,在整个Django中引用它的地方也将同样获得改变
一:简单示例
django1.x 系列:
fromdjango.conf.urls import urlfromdjango.contrib import adminfromapp01 import views
urlpatterns=[
url(r'^articles/2018/$', views.special_case_2018),
#url(r'^articles/[0-9]{4}/$', views.year_archive),
url(r'^articles/([0-9]{4})/$', views.year_archive), #no_named group
url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]
dgango2.0 系列:
urlpatterns =[
path('index/', views.index),
path('articles/2018/', views.special_case_2018),
path('articles//', views.year_archive),
path('articles///', views.month_archive),
path('articles', views.article_detail),
]
注意:1:要从url中捕获值,请使用尖括号:<>
2:捕获的值可以选择包含转换器类型。例如: 捕获整数参数。
3:没有必要添加一个前斜杠