urls.py
网址入口,每个请求的url都在这里进行匹配,分发
views.py
从urls.py分发过来的请求在这里处理,或者渲染templates中网页后,将结果显示到网页,显示给用户
models.py
与数据库相关的操作在这里完成,django根据model创建对应方数据库,数据表
forms.py
表单,用户在浏览器上的数据提交,对数据进行验证等。
templates(文件夹)
模板,一般存放Html网页,views.py中函数会进行渲染模板,得到网页
admin.py
后台,管理后台的功能需要在这里regisger
settings.py
django的配置文件。
常用命令:
1.创建一个项目
django-admin.py startproject projectName
2.新建一个app
django-admin.py startapp appName
创建一个项目后,会有一个manage.py此时也可以用python manage.py startapp appName命令
3.同步数据库
老版本的django: python manage.py syncdb
新版本:python manage.py makemigrations + python manage.py migrate
4.启动开发服务器
python manage.py runserver [port] port 端口是可选参数,默认8000端口
5.水帘数据库
python manage.py flush,默认会询问,选择yes后会将数据全部清空,此时表格为空
6.设置超级管理员
python manage.py createsuperuser
7.数据导入,导出
python manage.py loaddata appName appName.json
python manage.py dumpdata appName > appName.json
8.django项目环境shell
python manage.py shell
9.数据库shell
python manage.py dbshell
python manage.py shell
创建对象的方法:
前提已经在models中创建好了model
1.Person.objects.create(name='name',age=1)
2.p=Person(name='name',age=2)
p.save()
3.p=Person(name='name')
p.age = 3
p.save()
4.Person.objects.get_or_create(name='name',age=4)
注:第四种方法,是先查询,如果已经存在,就不创建,如果不存在,就创建,返回值是一个元组(Person.objects,True),第一个为对象,第二个为True或者False
获取对象方法:
1.Person.objects.all() 获取所有对象
2.Person.objects.all()[:5] 这里的切片操作从所有对象中取出5个,但不支持负索引
3.Person.objects.get(name=name) get用来获取一个对象,如果要按条件获取,那得使用filter
4.Person.objects.filter(name='abc')等于Person.objects.filter(name__exact='abc')严格等于‘abc’的人
5.Person.objects.filter(name__iexact='abc')
加上i之后是不区分大小写的
6.Person.objects.filter(name__contains='abc')
名之中包含‘abc’的人
7.Person.objects.filter(name__icontains='abc')
包含‘abc’,且不区分大小写
8.Person.objects.filter(name__regex='^abc')
正则表达式查询
9.Person.objects.filter(name__iregex='^abc')
正则表达式查询且不区分大小写
10.Person.objects.eclude(name__contains='a')
排除名字中包含‘a’的人
11.Person.objects.filter(name__contains='abc').exclude('a')
包含abc,然后去掉含a的,相当于Person.objects.filter(name__contains='bc')
未完待续.....