Django框架
为什么要使用虚拟环境
安装虚拟环境
pwd显示家目录
vi 编辑文件
创建python3的虚拟环境
1、可以查看确认创建的虚拟环境路径:桌面-单击文件-进入家目录-Ctrl+h显示隐藏文件夹-找到virtualenvs文件夹(
)在配置虚拟环境安装路径时的文件名
2、虚拟环境就是复制的python,包也是安装在复制的python里面
3、创建python的虚拟环境需要联网,ping一下百度网址判断是否有网
在虚拟环境下安装包
查看python里面装了哪些包
1、新建文件夹,创建一个新项目
查看项目目录结构
init文件说明test1是一个包
settings文件里面可以配置项目的数据库
url文件进行url路由配置(从地址找到处理函数的过程)
wsgi文件是web服务器和Django框架交互的入口
manage是项目的管理文件
2、创建一个新应用,去开发一个功能
创建应用并查看应用的目录结构:
init文件说明这是一个项目的模块
models写和数据库相关的内容
view视图 接收请求返回应答(定义处理函数,一个请求对应一个处理函数)
test写测试代码的文件
admin跟网站后台管理相关的文件
3、注册应用,建立一个应用和项目之间的联系(进入项目的配置文件settings里面的install_app配置项,在里面写上应用的名字booktest)
用开发工具pycharm打开 新创建的项目目录
4、项目和应用创建好之后,启动python自带的web服务器。
介绍一下ORM框架:建立类、对象和数据库之间的对应关系,通过操作类和对象,来操作数据库表
Django里面也带了一个orm,在应用文件夹里有一个model文件,设计和表对应的类——模型类。
1、在model里写模型类。2、orm自动生成表。from django.db import models
#图书类
class BookInfo(models.Model):
#图书模型类
#定义类属性(表里面的字段)
btitle=CharField(max_length=20)
#指定字段类型(字符串)和最大长度
bpub_date=models.DateField()
(1)制作迁移文件
0001_initial.py
(2)生成数据库表
一、在项目settings文件中的DATEBASES中查看数据库db.aqlite3
二、安装一个sqlite3,敲sqliteman打开项目下面的数据库文件
表的字段就是类的属性名,id字段自动生成,为表的主键
表名: 应用名_模型类名小写
(3)、向数据库中添加数据(在Django项目终端中用命令创建模型类对象、创建实例属性,保存)
查数据库表里面的信息,查到的信息是一个对象
改这个对象中的数值
删除一条记录
重复1、2
class HeroInfo(models.Model):
hname=models.CharField(max_length=20)
hgender=models.BooleanField(default=False)
hcomment=models.CharField(max_length=128)
hbook=models.Foreignkey(“BookInfo”)
重复(1)(2)
关系属性在表中的字段名:关系属性_id
表名:应用名_模型类名小写
模型类关系和关系查询
重复(3)
关系属性赋值时,关联的是一个对象、
往多类表中加数据
拿到一个英雄对象
查看英雄对象关联的图书信息:英雄对象.关联属性
看一本图书关联的英雄信息:类名_set
后台管理:
在admin文件中
from django.contrib import admin
#后台管理相关文件
admin.site.register(BookInfo)
admin.site.register(HeroInfo)
#注册模型类
重写模型类方法,改变返回值
在models文件中:
class BookInfo(models.Model):
…
def str(self):
return self.btitle
在models文件中:
class HeroInfo(models.Model):
…
def str(self):
return self.hname
在admin文件中注册模型类,生成对应的表管理页面
在admin文件中
from django.contrib import admin
#后台管理相关文件
#自定义模型管理类
class BookInfoAdmin(admin.ModelAdmin)
#图书模型管理类
list_display=[“id”,“btitle”,“bpub_date”]
class HeroInfoAdmin(admin.ModelAdmin)
list_display=[“id”,“hname”,“hcomment”]
admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo,HeroInfoAdmin)
#注册模型类
get/filter/exclude跟条件查询
格式:模型类属性名__条件名=值
条件关键字:gt lt gte lte
in
contains
exact
exclude
isnull
startswith
endswith
BookInfo.Object.filter(id__gt=3).order by(‘-bread’)
id>3 且 bread desc
元选项
t
v
案例
页面请求方式:
httprequest对象