DJango小总结一
views.py
def func(request):
# 包含所有的请求数据
...
return HttpResponse('字符串')
return render(request, 'index.html', {''})
retrun redirect('URL')
模板语言
return render(request, 'index.html', {'li': [11,22,33]})
{% for item in li %}
<h1>{{item}}</h1>
{% endfor %}
路由系统,URL
1、url(r'^index/', views.index),
url(r'^home/', views.Home.as_view()),
2、url(r'^detail-(\d+).html', views.detail),
3、url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail)
PS:
def detail(request, *args,**kwargs):
pass
实战:
url(r'^detail-(\d+)-(\d+).html', views.detail),
根据名称生成url
from django.urls import reverse
url(r'^asdfasdfasdf/', views.index, name='i1'),
url1 = reverse('i1') # asdfasdfasdf/
url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),
url2 = reverse('i2', args=(1,2,)) # yug/1/2/
url(r'^buy/(?P<pid>\d+)/(?P<nid>\d+)/', views.index, name='i3'),
url3 = reverse('i3', kwargs={'pid': 1, "nid": 9}) # buy/1/9/
xxx.html
{% url "i1" %} # asdfasdfasdf/
{% url "i2" 1 2 %} # yug/1/2/
{% url "i3" pid=1 nid=9 %} # buy/1/9/
# 当前的URL
request.path_info
视图
1、获取用户请求数据
request.GET
request.POST
request.FILES
PS:
GET:获取数据
POST:提交数据
2、checkbox等多选的内容
request.POST.getlist()
3、上传文件
# 上传文件,form标签做特殊设置
obj = request.FILES.get('fafafa')
obj.name
f = open(obj.name, mode='wb')
for item in obj.chunks():
f.write(item)
f.close()
ORM操作
select * from tb where id > 1
# 对应关系
models.tb.objects.filter(id__gt=1)
models.tb.objects.filter(id=1)
models.tb.objects.filter(id__lt=1)
创建类
a. 先写类
from django.db import models
# app01_userinfo
class UserInfo(models.Model):
# id列,自增,主键
# 用户名列,字符串类型,指定长度
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
b. 注册APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
c. 执行命令
python manage.py makemigrations
python manage.py migrate
注:
Django默认使用MySQLdb模块链接MySQL
主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()
字段的参数:
null -> db是否可以为空
default -> 默认值
primary_key -> 主键
db_column -> 列名
db_index -> 索引
unique -> 唯一索引
unique_for_date ->
unique_for_month
unique_for_year
auto_now -> 创建时,自动生成时间
auto_now_add -> 更新时,自动更新为当前时间
# obj = UserGroup.objects.filter(id=1).update(caption='CEO')
# obj = UserGroup.objects.filter(id=1).first()
# obj.caption = "CEO"
# obj.save()
choices -> django admin中显示下拉框,避免连表查询
blank -> django admin是否可以为空
verbose_name -> django admin显示字段中文
editable -> django admin是否可以被编辑
error_messages -> 错误信息欠
help_text -> django admin提示
validators -> django form ,自定义错误信息(欠)
创建 Django 用户:python manage.py createsuperuser
根据类对数据库表中的数据进行各种操作
一对多:
a. 外检
b.
外键字段_id
c.
models.tb.object.create(name='root', user_group_id=1)
d.
userlist = models.tb.object.all()
for row in userlist:
row.id
row.user_group_id
row.user_group.caption
最新文章
- 【BZOJ-4688】One-Dimensional 矩阵乘法
- FZU2082树链剖分
- 设计模式:桥连模式(Bridge)
- Phython 学习笔记之——类的初步认识
- 简单版解决IE兼容性问题
- windows 地址空间分配
- 蓝桥杯-格子中输出-java
- libpqxx接口的在linux下的使用,解决psql:connections on Unix domain socket ";/tmp/.s.PGSQL.5432";错误
- Java生成多数值二元运算结果集
- (2019)OCP 12c 062考试题库出现大量新题-4
- Angular中sweetalert弹框的使用详解
- JavaScript中函数和构造函数的区别
- 【statistics】理想论坛2018-4-25日统计
- Swift自定义头视图和尾视图
- NPOI List数据源 导出excel
- powmock
- Linq工具篇(1)&mdash;&mdash;使用LinqPad
- export,source
- 使用common-dbutils进行dao操作
- values.xml:3:5-58:857: AAPT: error: resource android:attr/fontVariationSettings not found.
热门文章
- git配置本地环境(phpstudy/tortoisegit/git等)
- ubtuntu 如何查看内存用量 mongostat详解
- python学习之路---day20--面向对象--多继承和super() 函数
- AtCoder Beginner Contest 113 C
- 江西理工大学南昌校区排名赛 B: 单身狗的数字游戏
- GDCM
- [原创]c# 类中 Collection 字段初始化的特殊之处
- html中的flv视频播放器
- Linux 运维之硬链接与软链接详解
- (转)shell脚本之seq命令