一、项目目录结构介绍
manager.py
与项目进行交互的命令行 工具 集的入口(项目管理器)
MyDjango
目录:项目容器,包含项目的基本配置,目录名称不建议修改
__init__.py
Python中声明模块的文件,内容默认为空
settings.py
项目的总配置文件,包含数据库、Web应用、时间等各种配置
urls.py
URL配置文件,Django项目中所有地址(页面)都需要我们自己去配置其URL
wsgi.py
WSGI(Python Web Server Gateway Interface)Python服务器网关接口,Python应用与Web服务器之间的接口
mytest
目录:开发者创建的应用
命令行: python manage.py startapp mytest
(使用命令行创建应用时需要手动将应用名添加到settings.py中的 INSTALLED_APPS
里,应用名不能与 Python 中模块名相同)
Django服务器启动命令: python manage.py runserver [端口号]
二、应用目录结构介绍
migrations
数据移植(迁移)模块
__init__.py
Python中声明模块的文件,内容默认为空
admin.py
应用的后台管理系统的配置
apps.py
应用的一些配置,Django-1.9以后自动生成
models.py
数据模型,使用ORM框架,类似于MVC结构中的Models(模型)
tests.py
自动化测试模块,Django提供了自动化测试功能,在这里编写测试脚本(语句)
views.py
执行响应代码和逻辑处理的主要模块,包含项目中的大部分代码
三、响应页面示例
编辑 views.py
每个响应对应一个函数,函数必须返回一个响应,函数必须存在一个参数,一般约定为request,每一个响应(函数)对应一个URL
编辑 urls.py
每个URL都以url的形式写出来,url函数放在urlpatterns列表中,url函数三个参数:URL(正则)、对应的方法、名称
四、URL配置
在根 urls.py
中引入include;在APP目录下创建 urls.py
文件,格式与 urls.py
相同;根 urls.py
中url函数第二个参数改为 include('blog.urls')
注意事项:根 urls.py
针对APP配置的URL名称,是该APP所有URL的总路径; 配置URL时注意正则表达式结尾符 $和/
五、Templates介绍
定义:使用了Django模板语言( Django Template Language, DTL
)的HTML文件,也可以使用第三方模板(如 Jinja2
)
5.1 使用步骤
- 在APP的根目录下创建名叫
Templates
的目录 - 在该目录下创建HTML文件
- 在
views.py
中返回render()
5.2 DTL初步使用
render()
函数中支持一个dict类型参数,该字典是后台传递到模板的参数,键为参数名,在模板中使用 {{ 参数名 }} 来直接使用
5.3 Django查找Templates
Django按照INSTALLED_APPS中的添加顺序查找Templates,不同APP下Templates目录中的同名.html文件会造成冲突
解决Templates冲突方案:在APP的 Templates
目录下创建以APP名为名称的目录,将html文件放入新创建的目录下
六、Models介绍
Django中的Models通常是一个Model对应数据库的一张数据表,Django中的Models以类的形式表现,它包含了一些基本字段以及数据的一些行为
ORM( Object-Relational Mapping
, 对象关系映射):实现了对象和数据库之间的映射,隐藏了数据访问的细节,不需要编写 SQL 语句
6.1 编写Models步骤
models.py models.Model
attr = models.CharField(max_length = 64)
更多关于类的字段以及可选参数
6.2 生成数据表:
命令行中进入 manage.p
同级目录执行 python manage.py makemigrations app_name(可选)
,再执行 python manage.py migrate
6.3 查看生成的数据表
Django会自动在 app/migrations/
目录下生成移植文件,执行 python manage.py sqlmigrate
应用名 文件id 查看SQL语句
默认 sqlite3
的数据库在项目根目录 下 db.sqlite3
6.4 前端页面呈现数据
views.py
中 import models
article = models.Article.objects.get(pk=1)
render(request, page, {'article' : article})
模板可直接使用对象以及对象的"."操作,如 {{ article.title }}
七、Admin介绍
Admin是Django自带的一个功能强大的自动化数据管理界面,被授权的用户可直接在Admin中管理数据库,Django提供了许多针对Admin的定制功能
7.1 配置Admin
创建超级用户: python manage.py createsuperuser
后台登录地址: http://127.0.0.1 :8000/admin/
更改语言为中文:修改settings.py中 LANGUAGE_CODE = 'zh_Hans'
7.2配置应用
在应用下 admin.py
中引入自身的models模块(或里面的模型类)
编辑 admin.py: admin.site.register(models.Article)
7.3 修改数据默认显示名称
在 Article
类下添加一个方法
根据Python版本选择 __str__(self)
或 __unicode__(self)
, return self.title
八、Templates过滤器
写在模板中,属于Django模板语言,可以修改模板中的变量从而显示不同的内容
使用方法: {{ value | filter }}, 如{{ list_nums | length }}
过滤器可叠加: {{ value | filter1 | filter2 | … }}
九、Django Shell
Python的交互式命令行程序,它自动引入了我们的项目环境
使用方法: python manage.py shell
作用:进行调试,测试一些未知方法
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Release It!
Michael T. Nygard / Pragmatic Bookshelf / 2007-03-30 / USD 34.95
“Feature complete” is not the same as “production ready.” Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to......一起来看看 《Release It!》 这本书的介绍吧!