模式
整个django大体上使用MTV架构:
- M–>Model
Model主要是建立起实体关系,根据不同Model之间的联系创建数据库,Model是实体,Model的属性是实体的属性,实体间的联系主要由外键控制。
表数据的增删改查就是Model类对象的创建、删除、过滤查找。
- V–>View
在urls.py配置文件中通过re匹配,转到view.py文件相应的方法,通过获取数据库中数据,将数据通过属性参数列表传递到模板文件template中。
- T–>Template
模板文件一般就是html文件,我们使用正常的html语法编写文件,同时配合传递进来的参数使用
展示界面
filter
过滤器我们常用的主要有2中类型:
- 在view.py文件中使用
view文件中我们通过modelname.objects.filter方法,留下符合条件的对象列表
Article.objects.filter(title__icontains = s)
上面表示返回符合Article Model中对象title属性包含s的对象列表,s是字符串表达式。
- 在template文件中使用
我们可以在template中调用过滤方法,对待处理的数据过滤处理返回,Django中template支持管道,上一个处理的结果直接作用为下一方法的输入:
post.content|read_more|custom_markdown
上面的语句一次通过调用read_more()方法、之后将处理结果作为输出参数传递调用custom_markdown()方法.
这里的filter方法是绑定到app本身的,不能其他app复用。在本app根目录创建tamplatetags包,里面包含init.py文件。
1 | register = template.Library() #自定义filter时必须加上,一个文件只需调用一次 |
staticfile
使用静态文件:
—-百度去吧
404
使用404
—-百度去
使用staticfile要求debug=true,而使用404.html要求debug=false。冲突,我们使用将debug设置为false,此时自带服务器默认不会记在静态文件中的js、css等类型文件,需要在启动server时
winpty python manage.py runserver --insecure
连接mysql
环境:
Django1.10
Mysql5.5.47
Pyhton3.5.x
首先安装第三方支持模块:
pip install pymysql
在projec目录的setting.py中修改:
1 | DATABASES = { |
要注意的是,上面使用的数据库名是已经在mysql中创建好的databasename
最后使用
python manage.py migrate
数据库同步迁移