我用的python版本为2.7,django版本为1.11。
参考教程:W3Cschool Django教程;菜鸟教程
一、创建django项目
这里我使用Pycharm中File--NewProject--Django的方法创建。同样,你也可以在命令行使用“django-admin startproject 项目名”的方式进行创建。在Pycharm中选择创建项目的位置及使用的编译器(环境),如下图所示。
点击“create”按钮即创建成功。
创建完成后,我们可以看到,项目中包含一个与项目名同名的python包,及manage.py等文件。
二、开启Django项目
点击Pycharm的下方栏中的“Terminal”按键,打开一个终端对话框。输入“python manage.py runserver 0.0.0.0:8000”开启服务,这里8000是默认端口号,可以根据需要进行更改。
根据提示信息“Run 'python manage.py migrate' to apply them.”,打开新的终端,点击Local旁边的“+”号即可,在新的终端界面输入“python manage.py migrate”。
在浏览器地址栏输入地址“http://127.0.0.1:8000/”,进行访问,如果Django服务开启成功,会看到如下界面:
根据页面提示信息“python manage.py startapp [app_label]
.”,现在我们可以使用“python manage.py startapp 你的app名
”创建我们的应用。
三、开始创建app
使用“python manage.py startapp appName”进行创建,创建完成后会生成一个以你指定的appName命名的python包。
在与项目同名的python包下的settings.py中,添加此app到INSTALLED_APPS:
这里,我有点不知道该干什么,于是先停一下,参考菜鸟教程,我现在与我的项目同名的python包中创建一个“view.py”的文件。
# -*- coding: utf-8 -*-
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
然后,打开“url.py”文件,修改如下:
"""DjangoCeleryForCrawler URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from . import view # new
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', view.hello), # new
]
注意,这里带有注释“# new”的行为新添加的行,是为了与“view.py”中的hello函数建立联系。这里为创建的路由,即我们通过浏览器输入服务器地址+/路由地址,即可访问服务器端提供的目标资源。
访问http://127.0.0.1:8000/,或者刷新之前打开过的浏览器服务界面,可以看到页面显示“Hello world !”的字样。
于是,我们现在改变这个路由地址,再次进行测试。
^与$分别为正则匹配的开始及终止符。
这时候如果你直接刷新之前的地址,会出现:
界面返回404,找不到目标页面,根据提醒,我们可以访问的路由地址包括:(1)admin;(2) hello。其中,http://127.0.0.1:8000/admin 为Django管理界面地址,因为我们没有配置用户名密码,暂且不管。后者,http://127.0.0.1:8000/hello 为新的 “Hello World”的页面地址。
为了不让首页总是出现404,于是加了个首页路由:
相应的views.py中也加了个对应的函数:
# -*- coding: utf-8 -*-
from django.http import HttpResponse
def first_page(request):
return HttpResponse("我是首页! ")
def hello(request):
return HttpResponse("Hello world ! ")
四、进一步的工作
因为我的项目中用到的数据库是MongoDB,因此这里就不再配置数据库。
我这里新建一个PythonPackage来放自己要运行的项目程序(可脱离Django单独运行的),然后将该package中的执行函数import到当前所在的app的views.py中。
将views.py中所需要的函数,在urls.py中分配路由进行请求即可。
另,我刷新界面的过程中Django交互界面出现:
看来是在加载百度的什么资源,然后被django禁止了,解决方法,根据提醒是把百度的地址加到"ALLOWED_HOSTS"中去。这里,我是将该变量添加“*”,已允许未知资源的加载。在settings.py中进行修改: