用到的一些html显示页面的方法
![%KXHEX(G[]YNTROI]_FOJYQ.png](http://upload-images.jianshu.io/upload_images/1516470-dc01a4dc1d513598.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
数据库操作的一些命令和方法:
首先新建项目:在虚拟机环境下 workon zqxt
cd + 目录
django-admin startproject projectname #新建项目
cd projectname #进入项目
django-admin startapp appname #创建一个应用
将appname添加到setting.py中告诉django有这么一个应用
在models中书写代码新建开一个类
![XGUEWE%SHH$IMI](Q_CC]YB.png](http://upload-images.jianshu.io/upload_images/1516470-92c3e31e50e1373b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w
/1240)
同步数据库命令
python manage.py makemigrations
python manage.py migrate
然后进入shell进行编辑
python manage.py shell
方法:
创建对象的方法
Person.objects.create(name=name,age=age)
p = Person(name="WZ", age=23)
p.save()
p = Person(name="TWZ")
p.age = 23
p.save()
Person.objects.get_or_create(name="WZT", age=23)
这种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或False, 新建时返回的是True, 已经存在时返回False.
获取对象的方法
Person.objects.all()
Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存
Person.objects.get(name=name)
get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter
Person.objects.filter(name="abc") # 等于Person.objects.filter(name__exact="abc") 名称严格等于 "abc" 的人
Person.objects.filter(name__iexact="abc") # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件
Person.objects.filter(name__contains="abc") # 名称中包含 "abc"的人
Person.objects.filter(name__icontains="abc") #名称中包含 "abc",且abc不区分大小写
Person.objects.filter(name__regex="^abc") # 正则表达式查询
Person.objects.filter(name__iregex="^abc")# 正则表达式不区分大小写
filter是找出满足条件的,当然也有排除符合某条件的
Person.objects.exclude(name__contains="WZ") # 排除包含 WZ 的Person对象
Person.objects.filter(name__contains="abc").exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的