Django_Day1
setting.py介绍:
设置允许访问的主机:
ALLOWED_HOSTS = ['*']#*代表所有
设置页面的中英文切换和时区
# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-hans' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/ShangHai'
render():用来渲染,存放模板的“templates”这个名字是固定不变的
自定义template的存放路径:【如果放在app里面就不用修改】
快速的网站部署方式:
python managey runserver 0.0.0.0 80
Day01
背景
-
Web阶段
- Django
- Flask
-
虚拟化技术
- 虚拟机
- 虚拟容器: Docker
- 虚拟环境:Python专用,将Python依赖隔离
模板配置——templates文件夹
-
两种
-
在App中进行模板配置
- 只需在App的根目录创建templates文件夹即可
- 如果想让代码自动提示,我们应该标记文件夹为模板文件夹
-
在项目目录中进行模板配置
- 需要在项目目录中创建templates文件夹并标记
- 需要在settings中进行注册
-
在开发中使用第二种
- 模板可以继承,复用
-
路由优化配置 —— urls.py
-
项目如果逻辑过于复杂,可以进行拆分
-
拆分为多个App
-
继续拆分路由器 urls
-
在App中创建自己的urls.py
- urlpatterns:路由规则列表
- 在根urls.py中进行子路由的包含(include())
-
子路由使用
- 根路由规则 + 子路由的规则
-
models 使用了ORM技术
-
Object Relational Mapping 对象关系映射
-
将业务逻辑进行了一个解耦合
- object.save()
- object.delete()
-
关系型数据库
- DDL
- 通过models定义实现 数据库表的定义
-
数据操作
-
增删改查
-
存储:save()
-
查询
- 查所有 : objects.all()
- 查单个 : objects.get(pk=xx)
-
更新
- 基于查询的
- 查好的对象,修改属性,然后save()
-
删除
- 基于查询的
- 调用 delete()
-
连接mysql驱动
-
mysqlclient
-
python2,3都能直接使用
-
致命缺点
- 对mysql安装有要求,必须指定位置存在配置文件
-
-
python-mysql
- python2 支持很好
- python3 不支持
-
pymysql*
- python2,python3都支持
- 它还可以伪装成前面的库
django shell
-
集成了python环境的shell终端
-
通常在终端中做一些调试工作
-
python manage.py shell
如何看待bug
-
看日志
- 先看第一条
- 再看最后一条
-
梳理思路
- 程序在哪一个位置和预期出现偏差
表关系
- 1:1 一对一
- 1:M 一对多
- M:N 多对多
快捷键
- control + p
- 参数提示
- shift + f6 重命名,重构