如何用Django框架做网站开发

Django的介绍:

	 一个开放源代码的web框架,由Python编译而成,是一个全能型框架。其他的web框架还有:flask、web2py、pyramid、Tornado等等。
	 其优点有:
	 		     --容易上手,开发速度快
	 			 --插件众多,基本包含了网站开发中的用户管理、内容管理、网站地图、RSS等常见插件
	 			 --高安全性,Django默认解决了SQL注入,跨站攻击等问题
	 			 --应用域广,类型多样化

Django的使用:

一:创建项目

Django中的“项目”可以看成一个专业名词,后面还有一个相关的词“应用”,所谓“项目”,可以理解成一个网站。

(此次我们在windows中使用Django,以pycharm作为Python的开发环境。pycharm里面自带了Django等一些框架,我们可以直接在pycharm里新建一个项目)

下面让我们来创建一个项目,在pycharm里新创一个project,打开如图所示,建立一个django项目并取一个喜欢的名字
如何用Django框架做网站开发

创建后是这样的:
如何用Django框架做网站开发

如何用Django框架做网站开发
解释:
外层目录text_1:只是你项目的容器, Django 不关心它的名字,你可以随意命名

里层子目录text_1:该名包含了你的项目,可以说是你项目的名称,你要引用到它内部的东西时需要用到的python包名(比如text_1.urls可以用来调用urls里面的东西)。该目录里面的内容就是我们要创建的项目内容。

init.py:一个很特殊的空文件,它所在的目录因为它的存在而变成一个python包。

settings.py:这个文件包括了项目的初始化设置,可以针对整个项目进行有关参数配置,比如配置数据库、添加应用等。

urls.py:一个URL(统一资源定位符:可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址)配置表文件,主要将URL映射到应用程序上。用户请求某个URL时,Django项目会根据这个文件中的映射关系指向某个目标对象,该对象可以是某个应用中的urls.py文件,也可以是某个具体视图函数。在django中,此文件也叫URLconf,这是Django非常强大的一个特性。

wsgi.py :该文件定义了创建的项目都是WSGI应用。

二:编写一个博客的数据模型

输入命令:django-admin startapp blogpython manage.py startapp blog
(这俩代码作用一样,区别在于:django-admin命令对应着django-admin.py文件,在django安装后就保存在目录bin下面。manage.py是创建一个项目后被自动生成在项目的根目录中,它是对django-admin的简单封装)
如何用Django框架做网站开发
如何用Django框架做网站开发

这个blog是在项目中创建的应用之一,我们还可以创造许多其他的应用。每个新应用的创建,Django就会在根目录生成一个子目录,并且配置一些默认文件:
admin.py:在此文件中,你可以自定义Django的管理工具
apps.py:对应用进行配置的一个文件,比如为管理功能提供一个适合的应用名称。
● migrations:用于存储应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而实现models.py模型类和数据库表之间的迁移
models.py:应用的数据模型,每个应用都应当有一个models.py文件,可以为空,但不宜删除
test.py:可通过编写测试文档来测试建立的应用
views.py:保存函数或者类的视图文件。这是一个重要的文件,用户保存响应各种请求的函数或者类。

之后就要将该应用注册到项目去,否则不能访问
如何用Django框架做网站开发
在项目的settings.py中的应用里加入blog,其余的都是Django默认具有的应用。

setting.py拓展:
● DEBUG:其值为True或False。 在开发过程中,值为True。如果我们要将项目部署到真正要对外发布的服务器上,即转换为“生产模式”时,得将值改为False,防止内部信息的暴露。
● ALLOWED_HOSTS:DEBUG为True时,它的值可以为空。当要部署到生产环境时,要把主域名填写到这里,才能通过域名访问到本网站。
● DATEBASES:可配置数据库,默认配置的数据库是SQLite。如果你想使用其他数据库你需要安装合适的 database bindings ,然后改变设置文件中 DATABASES ‘default’ 项目中的一些键值,还必须添加一些额外设置,比如 USER 、 PASSWORD 、 HOST 等等
● LANGUAGE_CODE:设置项目的语言
● TIME_ZONE:设置时区

● STATIC_URL :Django中,静态资源的存放通过设置 STATIC_URL, STATICFILES_DIRS 来设置,一般STATIC_URL设置为:/static/。 STATIC_URL=’/static/’, 这个static 是在Django 具体APP下建立的static目录,用来存放静态资源。而STATICFILES_DIRS一般用来设置通用的静态资源,对应的目录不放在APP下,而是放在Project下

如何用Django框架做网站开发

在/blog/models.py 中编写博客的数据模型类Blog:如图
如何用Django框架做网站开发

这是在此类中定义了一些属性,每个属性对应着将来数据库表中的一个字段。
之后,在执行命令 python manage.py makemigrations,出现下图所示状况:如何用Django框架做网站开发
你会发现执行的结果告诉我们在migrations目录中创建了三个模型,对应的就是models.py中编辑的模型类。而且在migrations目录中自动生成了一个文件0001_initial.py.此文件的功能是创建一个数据库表,是一个关于数据库表的文件。

然后在上面的基础上,在执行命令 python manage.py migrate,这就真正的创建数据库了。
如何用Django框架做网站开发

三:发布博客文章

我们先用最简单的方式实现博客文章的发布,使用Django默认的管理功能就可以发布文章。
首先我们创建超级管理员,输入命令 python manage.py createsuperuser,设置你的用户名和密码
如何用Django框架做网站开发

在浏览器输入http://127.0.0.1:8000/admin/,就可以打开下图所示界面
如何用Django框架做网站开发

登录刚创建的超级管理员账号后
如何用Django框架做网站开发

再在前面介绍过的admin.py里输入如下代码
如何用Django框架做网站开发

可以看见登录后的界面多了一个新注册的Blog
如何用Django框架做网站开发

我们可以点击Add添加博客文章
如何用Django框架做网站开发
这是一个非常简单的模板,Add里面添加的东西有前面models.py输入的代码模块决定的。我们可以设置一个复杂而又有意思的博客模板。

用户的管理

● 自定义模板和静态文件位置
● 通用静态文件和基础模板
● 视图的管理
● 用户内置登录