文章目录
第一节:DJgo框架简介与安装
Djgo 发布于2005年,是最负盛名且成熟的Python网络框架,最初用来制作在线新闻的Web站点
它是开源的Web框架,遵守BSD协议.
Djgo采用了MVC/MTV架构设计,即数据层、展示层、业务调度分离,这种架构设计的好处是可以方便解耦,复用。
MVC(Model,View,Controller)
MTV(Model,Template,View)
【BSD协议】
BSD协议全称Berkeley Software Distribution,始于197X年UC伯克利分校学生发行的软件(包括Pascal系统和一个编辑器ex),允许商用和二次开发,所以给于使用者很大自由的协议,只需要声明代码作者的著作权即可,很多的公司企业在选用开源产品的时候都首选BSD协议
# 安装djgo
pip3 install django==1.11.7
进入Python环境测试安装是否成功,正确输出版本号即安装正确
import django
django.get_version()
关于源的知识
- 查看安装好的包
方式一:使用命令
pip3 freeze
方式二:使用pycham
pycham-settings-Preject:-project interpreter
- 使用别的源
pycham-settings-Preject:-project interpreter-右上角“+” - Manage Recositories 进行设置
第二节:搭建虚拟开发环境
很多时候一台服务器上要运行多个Web应用程序;而这些应用程序之间使用的第三方框架往往是互不相同且互不兼容的;虚拟环境的作用就是为每个Web应用创建一个隔离的独立的运行环境,使得各个应用的依赖互不影响;
常用方式搭建(venv)
# 安装python包管理器pip
sudo apt install python3-pip
# 安装虚拟环境venv
sudo apt-get install python3-venv
# 在指定位置下创建虚拟环境
python3 -m venv .venv(这是文件夹名)
# bin目录下激活虚拟环境(路径需完整)
source .venv/bin/activate
#进行其他包的下载
pip3 install xxx
#退出环境
deactivate
3.4版前的方式搭建 (virtualenv)
因为virtualenv是一种能够兼容各个Python版本的虚拟环境创建方式,对于Python3.4以上的版本,其底层调用的仍然是Python原生的venv;
# 安装Python3
apt install python3-dev
# 安装虚拟环境virtualenv
pip3 install virtualenv
# 安装包装器
pip3 install virtualenvwrapper
# 选择路径并创建文件夹
cd / xxxx
mkdir .virtualenvs
# 声明环境变量并重启激活
vim .bashrc #编缉家目录下的bashrc文件,这个文件开机就会执行
export WORKON_HOME= /path/.virtualenvs # 导出环境变量1
xport VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythons # 导出环境变量2
source path/.bashrc # 激活环境
# 激活包装器
source home/.local/bin/virtualenvwrapper.sh
# 创建环境并指定py版本地址
mkvirtualenv xxx -p /usr/bin/python3.6
- 日常切换
# 激活包装器
source ~/.local/bin/virtualenvwrapper.sh
# 工作在xx环境
workon xxx
# 退出
deactivate
第三节:hello Djgo
创建工程项目
- 方式一:pycham创建工程项目
file - newproject - 选择Django - 选择路径+名字 - 选择解释器
ps:此方式工程会多一个template文件夹,setting.py也会在TEMPLATES内注册好此文件夹
- 方式二:命令创建工程项目
django-admin.py startproject HelloDjango
- 打开工程修改解释器
pycham-settings-Preject:-project interpreter-add local-选择虚拟环境解释器
- 默认工程结构及简介
如图
ps:查看工程目录结构可以使用 tree
sudo apt install tree
tree HelloDjango/
- 运行项目命令
# 运行命令:
python3 manage.py runserver
整合TV
创建子应用
1、使用命令创建子应用
python manage.py startapp MyApp
子应用目录:
2、在settings.py中注册应用
创建主页
1、定义路由
2、定义路由函数
3、打开主页
创建templates文件夹
1、新建文件夹,名曰:“templates”
2、标记文件夹
右击选择
“Mark Directary as”
-“Template Folder”
3、注册文件夹
创建一个模板
1、templates文件夹下创建一个HTML文件
2、编写HTML内容
3、定义路由
4、定义路由函数
- 打开页面
http://127.0.0.1:8000/welcome
整合M
PS:以下展示是不使用已有数据库数据的情况下,创建数据库再整合。并且以Django自带的Sqlite作为数据库展示的。
定义数据类型
数据类型参考表
参考类型 | 参考代码 | 说明 |
---|---|---|
整型 | models.IntegerField(default=1) |
|
浮点型 | models.FloatField(default=0) |
|
字符串型 | username = models.CharField(max_length=32, unique=True) |
|
文本类型 | models.TextField(db_column='ps') |
一般超过4000字使用 |
布尔型 | sex = models.BooleanField(default=False) |
|
空布尔型 | NullBooleanField |
支持null、true、false三种值 |
时间日期型 | o_create = models.DateTimeField(auto_now=True) |
|
自增长主键 | a_id = models.AutoField(primary_key=True) |
|
纯日期型 | DateField([auto_now=False, auto_now_add=False]) |
Python的datetime.date实例表示的日期 |
纯时间型 | TimeField |
使用Python的datetime.time实例表示的时间 |
超长数字 | DecimalField(max_digits=None, decimal_places=None) |
使用python的Decimal实例表示的十进制浮点数 |
max_digits=总位数 | ||
decimal_places=小数位数 | ||
长字节型 | FileField |
上传文件字段 |
图片型 | icon = models.ImageField(upload_to='icons') |
|
f_color = models.IntegerField(default=0, db_column="color") |
||
user = models.ForeignKey(UserModel) |
约束参考表
参考约束 | 参考代码 | 说明 |
---|---|---|
主键 | primary_key=False |
django会为表增加自动增长的主键列 |
如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 | ||
长度 | max_length=None |
|
唯一 | unique=False |
|
是否填null | null=False |
如果为True,则默认以空值NULL填充 |
空表单 | blank=False |
如果为True,则该字段允许为空白(即空字符串),这个约束常常用于表单验证 |
默认 | default=NOT_PROVIDED |
|
索引 | db_index=False |
若值为 True, 则在表中会为此字段创建索引 |
名称 | db_column=None |
字段的名称,如果未指定,则使用属性的名称 |
完整约束源码参考
例:
执行数据迁移
数据迁移的概念,就是将模型映射到数据库的过程;
迁移过后,框架为我们自动生成了库表,Django默认自带的数据库是SQLite数据库;
数据库文件生成路径为工程根目录下的db.sqlite3;
# 生成迁移文件(在MyApp下的migrations包中)
python manage.py makemigrations
# 执行数据迁移
python mananger.py migrate
连接pycham客户端(默认使用django自带Sqlite数据库)
- 2016版
1、右上角“+”
- Data Source
- Sqlite
2、“+”旁边的"..."
- 选择到该项目的Sqlite
3、安装驱动(只装一次)
- 2018版(需安装好DB Navigator,安装详情可查看插件版database的操作)
插入数据
新增路由和路由函数
例:
创建模板传入数据
1、templates内创建 students.html
2、传入数据
3、打开页面
加载静态资源
1、注册 static
2、创建 static 文件夹
3、加载静态文件
- 方式一:直接加载静态文件
http://127.0.0.1:8000/static/img/xxx.jpg
- 方式二:HTM加载静态文件