1.Django简介
Django是一个开放源代码的Web应用框架,它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
重量级的框架,替开发者想了太多的事情,帮开发者做了很多的选择,内置了很多的功能
官方网站 http://www.djangoproject.com
2. 为什么选择Django框架?
---> 源于真实的CMS系统的项目
---> 生态圈非常繁荣
---> 大部分功能都有成熟的解决方案
3. 创建Django项目和实施版本控制
~ pip3 install django==2.2.12 -i https://pypi.doubanio.com/simple
(这里选择Django最新版本)
~ django-admin --version
(查看版本)
~ django-admin startproject hellodjango(项目名字)
(创建Django项目)
4. 创建Django应用
~ 一个Django项目中可以包含一个或多个Django应用
创建一个应用 python manage.py startapp App/django-admin startapp App
App结构
~__init__
~views 视图函数
视图函数种参数是request 方法的返回值类型是HttpResponse models 模型
~admin 后台管理
~apps 应用配置
~tests 单元测试
~migrations /__init__ 迁移目录
5. 编写视图函数
~views.py ---> 视图函数(接收来自浏览器的请求,给用户以响应)
def show_index(request: HttpRequest):
return HttpResponse(content)
6. 配置URL
~ 使用视图函数需要配置URL映射(请求的路由) --->urls.py
~ URL(统一资源定位符) ---> 视图函数 ---> path函数
path('hello/', show_index),
7. 前端渲染
~前端渲染 ---> 在浏览器中完成渲染操作
前端通过Ajax请求获得后端提供的数据,通过JavaScript代码用数据渲染页面
8.后端渲染
~ 后端渲染 ---> 在服务器端用Python程序完成
把前端提供的静态页改造成模板页,把动态内容换成占位符,通过Python程序把动态内容填入模板页
显示在模板中
~先挖坑 {{ var }}
~ 再填坑
渲染模板的时候传递上下文进来
上下文是一个字典
ontext={'key':'value'}
~模板的兼容性很强
不传入不会报错
多传入也会自动优化掉
~浏览器不认模板
浏览器也叫做html解析器 只识别html文件
在到达浏览器之前,已经进行了转换,将模板语言转换成了HTML
~for 支持
{% for %}
~render底层实现:应用场景,发送邮件,邮件的内容需要使用render方法来操纵
加载
three_index = loader.get_template('three.html')
content={'xxx':'xxxx'}
渲染
result = three_index.render(content=content)
return HttpResponse(result)
9.修改数据库
在settings中的DATABASES中进行修改
实际上都是关系型数据库
mysql
'ENGINE': 'django.db.backends.mysql',
NAME(数据库名字)
USER(用户名字)
PASSWORD(密码 )
HOST (主机 )
PORT(端口号 )
CHARSET(字符集)
10.DML
数据操作
~迁移
生成迁移
python manage.py makemigrations
执行迁移
python manage.py migrate
才会真正在数据库产生表
~ORM
Object Relational Mapping 对象关系映射
将业务逻辑和sql进行了一个解耦合
通过models定义实现 数据库表的定义
~模型定义
(1)继承models.Model
(2)会自动添加主键列
(3)必须指定字符串类型属性的长度
class Student(models.Model):
name = modes.CharField(max_length=16)
age = models.IntegerField(default=1)
~存储数据
创建对象进行save()
~数据查询
模型.objects.all()
模型.objects.get(pk=2)
~更新
基于查询
save()
~删除
基于查询
delete()
10.Django shell
python manage.py shell
django 终端
python manager.py shell
集成了django环境的python 终端
通常用来调试
eg:
from Two.models import Student
students = Student.objects.all()
for student in students:
print(students.name)
11. 运行Django项目
~ Django自带的测试服务器
~ python manage.py runserver