django-admin startproject helloDjango 命令行创建Django项目
python manage.py startapp App 创建应用
python manage.py runserver 运行服务
settings.py
设置数据库得时间 set global time_zone=’+8:00’;
- ALLOWED_HOSTS = ["*"] 代表所有人都可以访问
- ROOT_URLCONF 跟路由路径
快捷键
- Alt+Enter 快速导包
实现一个请求
- 注册一个路由
- urls中
- url
- 参数① 匹配规则 正则
- 视图函数
- 对应的是views中的一个函数
- 没有括号 - 去views中实现对应的视图函数
- 第一个参数是reques
- 永远记得返回response
html 快捷键
- ul>li
- ul*5
- ul>li*5
##模板配置
- 两种
- 在App中进行模板配置
- 只需要在App中的根目录创建templates文件夹即可
- 标记文件夹为模板文件夹,进行代码提示
- 在项目中进行模板配置
- 需要在项目目录中创建templates文件夹并标记
- 需要在settings中进行注册
- 在开发中使用第二种
- 模板是可以继承和复用的
路由器优化配置
- 项目逻辑如果过于复杂,可以进行拆分
- 拆分分为多个APP
- 继续拆分路由器 urls
- 在App中创建自己的urls
- urlpatterns 路由规则列表
- 在根urls中进行子路由的包含
- 子路由使用
- 跟路由规则 + 子路由规则
models 使用了 ORM技术
- Object Relational Mapping 对象关系映射
- 将业务逻辑进行解耦合
- object.save()
- object.delete() - 关系型数据库
- DDL
- 通过models定义实现数据库表的定义
- python manage.py makemigrations 生成迁移文件
- python manage.py migrate 迁移到数据库中
- 存储
- student.save()
- 数据插入,添加学生
- student.s_name = ‘Jerry’
- 查询学生
- objects.all() 查询所有
- objects.get(pk=xx)
- 更新
- 基于查询的
- 查好的对象,修改属性,然后save()
- 删除
- 基于查询的
- 调用 delete()
连接mysql的驱动
- mysqlclient
- python2,3 都能直接使用
- 致命缺点
- 对mysql安装有要求,必须在指定位置存在配置文件 - python-mysql
- 只支持python2 - pymysql
- 支持python2和python3
- 可以伪装成前面的库
django shell
- 集成了python环境的shell终端
- 通常在终端中做一些调试工作
表关系
- 1:1
- 1:M
- M:M
快捷键
- control + p 参数提示