环境
- windows
- python3.6
- django1.8
环境搭建
- 安装Django包
pip install django==1.8 # 安装版本号为1.8的Django包
- 创建第一个django程序
# 在dos界面下启动项目
django-admin startproject 项目名 # 创建项目
cd 项目名 #进入到项目所在的文件夹路径
python manage.py runserver
出现如下图提示则创建成功
在浏览器输入http://127.0.0.1:8000/
Django项目创建完成后,项目自动生成文件如下图:
我这里使用的IDE是PyCharm
下面简单说一下每个文件的作用
- manage.py:使用django-admin命令行实用程序的快捷方式。它用于运行与我们项目相关的管理命令。我们将使用它来运行开发服务器,运行测试,创建迁移等等。
- __ init __.py这个空文件告诉Python这个文件夹是一个Python包。
- settings.py:此文件包含项目的所有配置。我们会一直参考这个文件!
- urls.py:此文件负责映射项目中的路由和路径。例如,如果要在URL中显示某些内容,则必须先将其映射到此处。
- wsgi.py:此文件是用于部署的简单网关接口。
Django APP
在Django的哲学中,有两个重要的概念:
-
app:是一个可以做完成某件事情的Web应用程序。一个应用程序通常由一组models(数据库表),views(视图),templates(模板),tests(测试) 组成。
-
project:是配置和应用程序的集合。一个项目可以由多个应用程序或一个应用程序组成。
如果没有一个project,你就无法运行Django应用程序。
Django app创建
- 命令行启动
django-admin startproject case1 # 创建一个名为case1的app
命令执行成功后,自动在项目目录下创建名为case1的文件夹 如下图:
下面,说一下每个文件的作用:
-
migrations/:在这个文件夹里,Django会存储一些文件以跟踪你在models.py文件中创建的变更,用来保持数据库和models.py的同步。
-
admin.py:这个文件为一个django内置的应用程序Django Admin的配置文件。
-
apps.py:这是应用程序本身的配置文件。
-
models.py:这里是我们定义Web应用程序数据实例的地方。models会由Django自动转换为数据库表。
-
tests.py:这个文件用来写当前应用程序的单元测试。
-
views.py:这是我们处理Web应用程序请求(request)/响应(resopnse)周期的文件
app配置
app创建完成后需要对app进行配置
配置步骤
- 打开项目下的settings.py 找到INSTALLED_APPS:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
Django默认已经安装了6个内置应用程序。它们提供大多数Web应用程序所需的常用功能,如身份验证,会话,静态文件管理(图像,JavaScript,CSS等)等。
只需将我们的应用程序case1添加到INSTALLED_APPS列表即可:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'case1' # 建议空一行来区别内置app和自定义app
)
创建view
打开case1中的 views.py 文件,并添加以下代码:
view .py
from django.http import HttpResponse
def hello(request):
return HttpResponse('Hello World!')
视图是接收httprequest对象并返回一个httpresponse对象的Python函数。接收 request 作为参数并返回 response 作为结果。
我们在这里定义了一个简单的视图,命名为hello,它只是简单地返回一个信息,一个字符串hello,world!。
调用view前我们必须先告诉Django什么时候调用这个view。这需要在 urls.py 文件中完成:
urls .py
from django.conf.urls import include, url
from django.contrib import admin
from case1 import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^$',views.hello,name='hello')
]
如果你将上面的代码片段与你的urls.py文件进行比较,你会注意到我添加了以下新代码:
url(r'^ $',views.home,name ='home')
并通过
from boards import views
我们的应用程序case1中导入了views模块
Django使用正则表达式来匹配请求的URL。对于我们的hello视图,我使用^$ 正则,它将匹配一个空路径,也就是主页(这个URL:http://127.0.0.1:8000 )。如果我想匹配的URL是 http://127.0.0.1:8000/hellopage/ ,那么我的URL正则表达式就会是:url(r’^hellopage/$’, views.hello, name=‘hello’)。
启动项目
python manage.py runserver
在浏览器中打开http://127.0.0.1:8000:
这样就成功创建了第一个视图