day04
实现重定向:HttpResponseRedirect()
实现渲染:render()
实现响应: HttpResponse()
硬编码例如
'/add/index/', '/add/all_stu/
第一种重定向
return HttpResponseRedirect('/add/index/')
第二种重定向 反向解析reverse(‘namespace:name’) 也就是先定义别名
return HttpResponseRedirect(reverse('dy:all'))
alt+enter:快捷键
autofield charfield integerfield booleanfield datetimefield
filter()查询满足条件的
first()
last()最后
edxclude() 排除满足条件的
all()查询所有
order_by()排序
values()
__contains() 包含
__startwith() 以什么开头
__endwith() 以什么结尾
__gt() 大于
__gte() 大于等于
在urls.py添加
url(r’del_stu/’, views.del_stu),
在views里添加一个函数
def del_stu(request):
Student.objects.filter(s_name=’caocao’).delete()
return HttpResponse(‘删除成功’)
在urls.py添加
url(r'update_stu/', views.update_stu),
在views里添加一个函数
def update_stu(request):
Student.objects.filter(s_name=’被更新的据’).update(s_name=’更新数据’)
return HttpResponse(‘更新成功’)
stus = Student.objects.filter(Q(s_age=18) | Q(s_gender=1))
stus = Student.objects.filter(Q(s_age=18) & Q(s_gender=1))
stus = Student.objects.filter(~Q(s_age=18))
stus = Student.objects.filter(chinese__gt=F('math'))
alt+enter:快捷键
autofield charfield integerfield booleanfield datetimefield
filter()查询满足条件的
first()
last()最后
edxclude() 排除满足条件的
all()查询所有
order_by()排序
values()
__contains() 包含
__startwith() 以什么开头
__endwith() 以什么结尾
__gt() 大于
__gte() 大于等于
在urls.py添加
url(r’del_stu/’, views.del_stu),
在views里添加一个函数
def del_stu(request):
Student.objects.filter(s_name=’caocao’).delete()
return HttpResponse(‘删除成功’)
在urls.py添加
url(r'update_stu/', views.update_stu),
在views里添加一个函数
def update_stu(request):
Student.objects.filter(s_name=’被更新的据’).update(s_name=’更新数据’)
return HttpResponse(‘更新成功’)
stus = Student.objects.filter(Q(s_age=18) | Q(s_gender=1))
stus = Student.objects.filter(Q(s_age=18) & Q(s_gender=1))
stus = Student.objects.filter(~Q(s_age=18))
stus = Student.objects.filter(chinese__gt=F('math'))
1.进入虚拟环境:source activate
2.创建代码的项目:pyhton manage.py startproject day02
3.更改设置__init__.py设置
import pymysql
pymysql.install_as_MySQLdb()
4.更改setting.py设置
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘dj8’,
‘USER’: ‘root’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: 3306,
‘PASSWORD’: ‘123456’
}
}
LANGUAGE_CODE = ‘zh-hans’
二、创建应用
` python manage.py startapp <文件名>`
#### 我先创建了一个名为app的应用:
`python manage.py startapp app`
然后在app里面的models.py里定义东西
from django.db import models
class Student(models.Model):
定义s_name字段最长不超过6个字符
unique=True 唯一
s_name = models.CharField(max_length=6, unique=True)
定义s_age字段
s_age = models.IntegerField(default=18)
定义s_gender字段
s_gender = models.BooleanField(default=1)
定义create_time字段 创建时间
create_time = models.DateTimeField(auto_now_add=True)
#### 定义operate_time字段 修改时间 auto_now为每次修改 保存每次修改的时间
operate_time = models.DateTimeField(auto_now=True)
class Meta:
#### 定义模型迁移导数据库的表名
#### 表名为student
db_table = 'student'
1.进入虚拟环境:source activate
2.创建代码的项目:pyhton manage.py startproject day02
3.更改设置__init__.py设置
import pymysql
pymysql.install_as_MySQLdb()
4.更改setting.py设置
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘dj8’,
‘USER’: ‘root’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: 3306,
‘PASSWORD’: ‘123456’
}
}
LANGUAGE_CODE = ‘zh-hans’
二、创建应用
` python manage.py startapp <文件名>`
#### 我先创建了一个名为app的应用:
`python manage.py startapp app`
然后在app里面的models.py里定义东西
from django.db import models
class Student(models.Model):
定义s_name字段最长不超过6个字符
unique=True 唯一
s_name = models.CharField(max_length=6, unique=True)
定义s_age字段
s_age = models.IntegerField(default=18)
定义s_gender字段
s_gender = models.BooleanField(default=1)
定义create_time字段 创建时间
create_time = models.DateTimeField(auto_now_add=True)
#### 定义operate_time字段 修改时间 auto_now为每次修改 保存每次修改的时间
operate_time = models.DateTimeField(auto_now=True)
class Meta:
#### 定义模型迁移导数据库的表名
#### 表名为student
db_table = 'student'
Model: 即数据存取层。用于封装于应用程序的业务逻辑相关的数据,以及对数据的处理。说白了就是模型对象负责在数据库中存取数据
View: 即表现层。负责数据的显示和呈现。渲染的html页面给用户,或者返回数据给用户。
Controller: 即业务逻辑层。负责从用户端收集用户的输入,进行业务逻辑处理,包括向模型中发送数据,进行CRUD操作。
严格来说,Django的模式应该是MVT模式,本质上和MVC没什么区别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同。
Model: 负责业务与数据库(ORM)的对象
View: 负责业务逻辑并适当调用Model和Template
Template: 负责把页面渲染展示给用户
注意: Django中还有一个url分发器,也叫作路由。主要用于将url请求发送给不同的View处理,View在进行相关的业务逻辑处理。
#####1、安装VIRTUALENV
pip install virtualenv
###创建虚拟环境
#####2、进入你需要创建虚拟环境的目录
```virtualenv –no-site-packages djenv
参数说明: –no-site-packages 是获取一个纯净的python虚拟环境
-p + <版本路径>指定python版本
djenv 是文件名 可以随意(但需见名知意)版本路径>
###3、进入和退出env
进入: cd djenv 再使用activate命令
注意:mac 需要 source activate命令才能进入
退出: deactivate
```
###二、安装Django
安装django
pip install django==1.11
查看:
pip list
pip freeze
安装数据库的驱动
pip install pymysql
###三、创建Django项目
django-admin startproject<文件名>
例如:django-admin strtproject day01
用pycharm打开项目,并使用创建好的虚拟环境
Django目录结构:
.
├── day01
│ ├── init.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
终端启动:
python manage.py runserver 0.0.0.0:8080
django启动项目:python manage.py runserver 8080
8080 是指定端口
修改manage.py 中:
LANGUAGE_CODE = 'zh-hans'
- 字体
ALLOWED_HOSTS = ['*']
启动添加0.0.0.0表示允许所有ip访问
###四、连接数据库 修改manager.py文件
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘dj6’,
‘USER’: ‘root’,
‘PASSWORD’: ‘123456’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: 3306
}
}