今天小编给大家分享一下Django项目如何创建的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1.Django简介
Django是基于Python的重量级开源Web框架
Django采用MVT的软件设计模式,即模型(Model),视图(View)和模板(Template)
M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)
T 表示模板 (Template):负责如何把页面(html)展示给用户
V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template
2.搭建Django
使用pycharm创建虚拟环境
在项目开发过程中会下载很多第三方库,有时不同项目对同一个库的依赖版本不同,如果所有项目都使用同一个Python环境就会起冲突不便于管理。因此在实际开发中我们会为每一个项目都单独创建一个python的虚拟环境(虚拟环境会很好地帮助处理各个包之间的隔离问题)
最常用的python虚拟环境管理工具是Virtualenv
我们可以直接使用pycharm工具创建虚拟环境,只需要在创建项目的时候勾选创建虚拟环境即可
按照上述配置创建好项目后会在当前项目根目录下创建虚拟环境
venv
下载Django
点击Pycharm左上角中的【文件】|【设置】,弹出设置选项窗口
点击"Python解释器"中的 + 按钮
安装完成后,大家可以看到django已经是指定的安装版本了
在终端上创建Django项目,在虚拟环境中使用django-admin命令创建一个项目
django-admin startproject 项目名称
效果如下所示:
在生成的目录结构中,venv目录是虚拟环境,study_django目录是项目名称
3.Django项目目录及文件说明
在当前目录创建名为
study_django的目录,目录中的内容如下:
study_django/ # 项目根目录,目录名可以随意更换 study_django/ # 项目目录,python包 __init__.py asgi.py # 兼容asgi协议的web服务器入口文件 settings.py # 项目配置文件 urls.py # 项目根路由文件 wsgi.py # 兼容wsgi协议的web服务器入口文件 manage.py # 管理django项目命令行工具
文件 | 说明 |
__init__.py | 一个空文件,告诉Python这个目录应该被认为是一个Python包 |
asgi.py | 作为项目运行在ASGI兼容的Web服务器上的入口 |
settings.py | Django总的配置文件,可以配置APP、数据库、中间件、模板等诸多选项 |
urls.py | Django默认的路由配置文件,可以在其中include其他路径下的urls.py |
wsgi.py | Django实现的WSGI接口的文件,用来处理web请求 |
manage.py | Django程序执行的入口,一个可以用各种方式管理Django项目的命令行工具 |
4.运行项目
创建完项目以后,进入到项目根目录下运行如下命令
python manage.py runserver ip:端口
注意Tips:命令不带ip和端口参数,服务将默认运行在
127.0.0.1:8000
运行命令及运行结果如下所示:
运行成功后在浏览器访问
http://127.0.0.1:8000/将会看到Django欢迎页面
修改时区和语言
上述的欢迎页面是英文的,Django框架做了国际化,我们只需要在study_django/settings中修改如下配置,即可配置好中文和正确的时区
# 语言设置为中午 LANGUAGE_CODE = 'zh-hans' # 时区配置为亚洲上海 TIME_ZONE = 'Asia/Shanghai'
再次访问
http://127.0.0.1:8000/,欢迎页面如下:
5.创建Django应用
在Django项目中,推荐使用应用来完成不同模块的任务
一个项目可以包含多个应用,而一个应用也可以在多个项目中使用
在Django中,每一个应用都是一个python包,并且遵循着相同的约定和结构
Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了
项目和应用有什么区别?
简单理解为一个项目即是一个网站,一个应用就是这个网站的某一个功能板块
如果服务已经启动,先按下<Ctrl + c>组合键关闭服务,然后在项目根目录下运行如下命令
python manage.py startapp 应用名
效果如下所示:
在生成的目录结构中,study_django目录下又多了一个article目录
文件 | 说明 |
__init__.py | 一个空文件,告诉Python这个目录应该被认为是一个python包 |
migrations | 执行数据库迁移生成的脚本 |
admin.py | 配置Django管理后台的文件 |
apps.py | 单独配置添加的每个app的文件 |
models.py | 创建数据库数据模型对象的文件 |
tests.py | 用来编写测试脚本的文件 |
views.py | 用来编写视图控制器的文件 |
创建完article应用以后,它不会立即生效,需要在项目配置文件blog/settings.py中激活应用
代码如下所示:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增代码,激活article应用 'article.apps.ArticleConfig', ]
通常INSTALLED_APPS默认包括以下Django自带的应用,这些应用被默认启动是为了常规项目提供方便
django.contrib.admin:管理员站点
django.contrib.auth:认证授权系统
django.contrib.contenttypes:内容类型框架
django.contrib.sessions:会话框架
django.contrib.messages:消息框架
django.contrib.staticfiles:管理静态文件的框架