Django学习笔记:入门开发(一)

54 sec read

最近在学习Django,把自己学习的一些内容记录下来,方便学习,这边主要学习的是官方网站的入门教程。在学习Django先要学习下Django的架构

开发前准备

环境准备主要是安装Python和PostgreSQL,这里不做详细的介绍。目前使用的Python版本为3.6.1。然后安装Django包和PostgreSQL的数据库连接数据包。安装也非常的简单:

这里使用的是Django最新的2.0.1版本。由于目前主要用来学习,所以没有使用到virtualenvv

建立项目和应用

在安装完成后将就需要建立项目和应用,需要注意的是在Python中项目和应用是归属的关系,即应用属于项目,在建立应用前先要建立项目。

建立项目

建立项目前需要将控制台命令所在的目录转到你想建立的目录,然后运行:

django-admin startproject mysite

在运行完成后,会在当前目录下生成如下文件:

在这里我们先对如下内容,不进行深究:

在后文中再来讲解settings.py和urls.py。

建立应用

在执行完完上述命令后,将目录转到mysite目录下,执行建立应用的命令:

在执行完上诉命令后,会在mysite目录下生成如下文件:

配置项目

配置项目的核心是修稿settings.py文件。

数据库连接配置

这里选择的是PostgreSQL,所以将文件中的数据库设置修改为:

注意:库名需要在数据库中新创建好

其他类型数据库配置参见:https://docs.djangoproject.com/en/2.0/ref/settings/#databases

语言和时区设置

具体配置如下:

注意事项:

  • 语言设置时,使用的的是zh-hans,而不是zh-CN,这个和HTML中的语言设置也一样,这里遵照的是IOS 639规则。
  • 设置TIME_ZONE需要将’UTC’改为’Asia/Shanghai’,否则会出现界面呈现时的时间比当前时间小8小时。

新增应用

在安装的APPS中新增如上的记录。

创建第一个视图

定义视图

打开polls/views.py,修改内容为:

URL配置

将URL配置下放给每个应用,应用与应用这边的URL配置相互独立,这样更加有利于维护。通过include方法引用应用下的URL配置文件。打开mysite/urls.py,将内容设置如下:

设置URL和视图绑定关系

将URL规则与试图进行绑定,这里通过给urlpatterns添加path实现。在polls文件夹下新建urls.py,文件内容为:

运行查看效果

通过内置服务器运行查看效果,运行如下指令开启内置服务器:python manage.py runserver

然后通过http://127.0.0.1:8000/polls/即可查看到返回的视图信息。

注意:内部服务器仅供测试使用,对外发布最好使用wgsi的模式,这里不做深入研究。

创建第一个模型

创建模型

打开polls/models.py文件,将文件内容更新为:

投票的模型比较简单,主要是问题和选项,中间要特别注意问题和选项的一对多关系的设置。

由于模型中的涉及到字段、关系、设置等,比较复杂,这里先不做详细阐述,后续进行单独的介绍。

生成数据库表

Django的一个强大之处是在创建完模型后可以直接生成数据库表,执行:

可以看到类似的内容:

上面的语句并没有直接创建表,而是生成了创建表的语句,polls/migrations/0001_initial.py中生成的是迁移的一些操作。可通过如下指明查看具体的执行SQL是怎样的:

正常情况下会返回如下信息:

若需执行上述SQL语句,还需执行:

migrate命令会找出所有还没有被应用的迁移文件(Django使用数据库中一个叫做django_migrations的特殊表来追踪哪些迁移文件已经被应用过),并且在你的数据库上运行它们 —— 本质上来讲,就是使你的数据库模式和你改动后的模型进行同步。

使用Django提供的API操作数据库

一旦你建立好数据模型,Django 会自动为你生成一套数据库抽象的API,可以让你创建、检索、更新和删除对象。进入Django的Shell环境: python manage.py shell

在上面的操作中,我们看到已经有数据在数据表中了,但是返回的信息不直观,可以在模型中设置__str__()来使呈现的结果更加直观。修改polls/models.py文件为:

另外针对模型我们也可以添加自定义方法,比如在问题上添加是否是最近发布的判断方法(判断发布时间是否在1天以内):

再次进入shell环境查 python manage.py shell :

开启管理后台

Django比较方便的地方还在于它可以快速的生成一个管理后台。通过对管理后台的配置,可以对模型进行增删改查的操作。

创建超级用户

过程非常的简单,按照指令一步步填写就行。

登录管理后台

使用python manage.py runserver启动内部服务器后,即可通过http://127.0.0.1:8000/admin/ 进行登录。登录后即可看到这样一个界面:

将模型添加到管理后台

默认情况下只有用户管理的模块,并没有针对模型管理的功能,这就要涉及到对polls/admin.py的配置。

最简单的添加模型的方式:

对模型的呈现进行设置

将模型添加到管理后台后,可以调整增删改查页面的呈现,比如设置各字段的显示顺序:

将字段进行分组:

具体请参考 ModelAdmin的设置

添加其他模型到后台管理

通过上面的设置即可对问题进行增删改查。同样你也也可以把选项也这样进行添加:

但是并不建议这么做,原因是问题和选项是一对多的,选项的设置最好直接在问题里面进行。解决方案如下:

如果要将选项做不同的呈现,可以设置为:

添加模型中不存在的内容到列表页,比如:是否是最近发布was_published_recently()。

修改模型

更多内容参见:list_display

另外可以通过设置list_filter和search_fields来设置列表页的过滤项和搜索字段。

自定义管理后台的呈现样式

默认情况下管理后台采用的是系统自带的模版样式,但是很容易进行自定义设置。

首选需要做的是创建项目模版文件,在项目文件夹(包含manage.py的文件夹)内创建templates文件夹,打开设置文件mysite/settings.py,在TEMPLATES的设置中添加DIRS目录设置:

在templates目录下创建admin目录,从django/contrib/admin/templates(Django所在目录的查看方式为:python -c “import django; print(django.__path__)”

)目录下复制admin/base_site.html到目录内。然后修改复制过来的文件即可。其他文件同理。

未完待续…

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

PySpider框架简介及安装

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。
1 min read

Windows安装Docker记录

Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的APP形式的应用。这个应用可以直接分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案,和虚拟化技术类似,它极大的方便 ...
22 sec read

Windows下安装Tesserocr

在爬虫过程中,经常会遇到各种验证码,大多数验证码是图形验证码,先前的文章中有介绍到破解图形验证码的原理。最简单的破击验证码的方式是使用OCR。
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *