Django第二天笔记

一、安装虚拟环境

安装虚拟环境软件
pip3 install virtualenv
安装虚拟环境扩展包
pip3 install virtualenvwrapper
配置家目录下的环境配置文件 .bashrc,添加如下内容
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
环境变量生效
source .bashrc
创建python3的虚拟环境
mkvirtualenv -p python3 py_django


注意:
所有的虚拟环境,都位于/home/python/下的隐藏目录.virtualenvs下。
因为我们配置了WORKON_HOME=$HOME/.virtualenvs

安装django软件
pip install django==1.8.2


报错:
>>> import MySQLdb
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ImportError: No module named 'MySQLdb'

解决办法:

1. 安装pymsql
pip install pymysql
2. 安装完毕,打开项目的_init_.py,添加如下两行代码:
import pymysql 
pymysql.install_as_MySQLdb()
3. 重新执行
python manage.py migrate
注意:django 1.6版以下为python manage.py syncdb


二、render 使用详解
render(参数1, 参数2,参数3)
参数2:必须是request
参数2: 调用的模板文件
参数3:给模板传入的参数
注意:
参数3可有可无



三、django访问流程
1、用户发起请求
2、url路由系统对请求关键字进行分发
3、分发给对应的views视图函数hello
4、view视图调用models文件去数据库中获取数据
5、view视图调用指定的template模板文件,
6、将获取的数据填充到template文件中
7、通过模板标签变量名进行指定位置数据填充
8、形成一个完整的web页面,返回给用户



模板文件:
不变的是 静态文件内容
变化的是 模板标签

四部分:
url路由:根据请求关键字,分发请求给对应视图函数
view视图 :数据逻辑处理
1、根据用户请求,调用models获取对应的数据
2、调用模板,填充数据
models模型:数据访问层,去数据库中获取数据
templates模板:view获取到的数据存放地方


五、orm


第一层意思:映射
Object 对象 -- models文件中定义的模型类对象
Relation 关系 -- 关系数据库中的数据表
Mapping 映射 -- 对象和数据表的一一对应
实例对象 -- 一条完整数据记录

模型类 数据库表
类名 表名
属性 字段
字段类型 字段属性


第二层意思:转换

模型类做的一个动作 具体的sql语句
all() select * from ...


orm:
映射
转换




字段类型:
四个:布尔、整数、字符串(max_length)、日期

选项:
null 针对于数据库表的设计用的,用来判断某个字段属性是否为空
表设计,段属性
blank
针对于数据库表的某条数据记录用的,用来判断某个字段值的是否为空
表记录,值为空
default
针对于数据库表的某条数据记录用的,用来定义某个字段值的默认值
表记录,默认值




操作分析:
all()
select * from
get()
select * from 。。。 where 

>>> b=BookInfo()
>>> b.btitle="你好帅,班长666"
>>> from datetime import date
>>> b.bpub_date=date(2000,1,10)
>>> b.save()

b.btitle如果为空,那么这一个整体就是insert
b.btitle如果不为空,那么这一个整体就是update
delete()
delete from 。。。。



管理器:
默认管理器:
默认的名称是objects
可以改名,以覆盖的形式
books = models.Manager()
注意:
二者只能生存一个

自定义的管理器
1、更改(重写)某个特殊类型属性
2、增加一个特殊的属性
注意:
自定义的管理器可以和默认管理器同时存在

python当中的两种层级关系:
代码中使用缩进表示层级关系
文件间使用 . 表示层级关系


模板:
变量名标签:
{{变量名}}
循环标签
{%for 条件%}
执行语句
{%endfor%}

python中的for
for 条件:
执行语句

查询集:
特性:
惰性
缓存



过滤器:
all() *****
select * from 。。。
filter() *****
select * from 。。。 where/limit
exclude()

order_by()
get() *****
select * from 。。。 where


条件查询:
格式:属性名称__比较运算符=值

等值和取反
等值exact
取反:.exclude()

模糊查询
包含:
contains
范围:
in
二分查询:
gt lt gte lte

锚定查询
startswith
endswith

日期
year、month、day、week_day、hour、minute、second



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值