Django介绍
是用python语言写的开源web开发框架
Django的好处
- 简便、快速的开发数据库驱动的网站
- 它强调代码复用,多个组件可以很方便的以“插件”的形式服务于整个框架
- Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包
Django开发的特点
-
重量级框架
提供项目工程管理自动化脚本工具
-
MVT模式
M全拼为Model,负责和数据库交互,进行数据处理。
V全拼为View,接受请求,进行业务处理,返回应答。
T全拼为Template,负责封装构造要返回的html。
虚拟环境
- 如何创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称
例 mkvirtualenv -p python3 py3_django
2.查看虚拟环境的命令:workon
3.切换虚拟环境:workon 虚拟环境名称
4.退出虚拟环境:deactivate
5.删除虚拟环境:rmvirtualenv
例 rmvirtualenv py3_django (先退出,再删除)
(pip list查看有哪些包) (pip install )
创建Django项目
django-admin startproject 项目名称
一个项目由很多个应用(模块)组成的,每一个应用完成一个特定的功能。
创建应用的命令如下·:
python manage.py startapp 应用名
注意:创建应用时需要先进入项目目录
python manage.py runserver(运行web项目)
工程目录说明
-
settings.py是整个项目的整体配置文件
-
urls.py是项目的URL配置文件
-
wsgi.py是项目与WSGI兼容的web服务器入口
-
manage.py是项目管理文件,通过它管理项目
应用模块目录说明
-
models.py:写和数据库项目的内容
-
views.py :接收请求,进行处理,与M和T进行交互,返回应答(定义处理函数,视图函数)
-
tests.py:写测试代码的文件
-
admin.py:网站后台管理
建立应用和项目之间的联系,需要对应用进行注册:
修改settings.py中的INSTALLED_APPS配置项,往里面添加应用文件名就行
-
MVC
M:Model模型,和数据库进行交互
V:View视图,产生HTML页面
C:controller控制器,接收请求,进行处理,与M和V进行交互,返回应答
MVT
M:Model模型,和MVC中M功能相同,和数据库交互
V:View视图,和MVC中C功能相同,接受请求,进行处理,与M和T进行交互,返回应答
T:Template模板,和MVC中V相同,产生HTML页面
ORM框架
Object:对象-类
Mapping:映射
Relations:关系,关系数据库中的表
通过类和对象操作对应的数据表,不需要写SQL语句
在models.py文件里面设置和表对应的类,模型类
ORM一个作用:根据设计的类生成数据库中的表
path规则
使用尖括号(<>)从url中捕获值。包含一个转化器类型(convert type),没有转化器,将匹配任何字符串,当然也包括了 / 字符
1.设置url:path(‘test/’,views.test)
2.在视图中将获取到的参数和参数的类型打印出来:
def test(request,xx):
print(xx,type(xx)) 例如可以用int类型
return HttpResponse('hello%s',xx)
一个project有一个总的urls.py,各个app也可以自己建立自己的urls.py用include()函数在project的urls.py文件进行注册
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('bokktest.urls')),#这一步一定要有
]
视图函数中可以通过关键字参数获取到
kwargs为字典类型,可以传递额外的参数到views中,使用include的时候需要统一给下面的URL一些参数的时候,显得尤其重要。
name的作用
给一个匹配的URL地址取名字,一般用于模板,也可以使用reverse进行页面重定向(访问一个页面,跳转到另一个页面)
redirect是重定向,reverse是将URL的name解析成URL本身的函数
def test(request):
#print(xx,type(xx))
return redirect(reverse('index'))//重定向
模板路径配置
1.在子应用的外边,创建一个模板的文件,一般我们的文件夹名叫做template
2.在template里创建一个HTML的文件
3.在setting.py里找到templaes中的dirs
'DIRS': [os.path.join(BASE_DIR,'template')],
render方法的使用
1.进入视图在视图中渲染,render()就是渲染模板文件的
2.render()中的参数
request:请求 template_name:模板名字 context:传递参数
模板变量的使用规则
1.语法:{ {变量名}}
2.命名由字母和数字以及下划线组成,不能有空格和标点符号
3.可以使用字典、模型、方法、函数、列表
4.不要和python或dijango关键字重名