首先检查Django是否成功安装, 在shell prompt 输入$ python -m django --version
, 如果已经成功安装,则显示版本,没有则
建立民意调查网站并投票:(project-app)
(A public site that lets people view polls and vote in them.)
1.$django-admin startproject mysite
在当前目录下建立了 mysite 目录——项目容器。
此处应注意避免使用django或者python内置包文件的名称,如“django”,“test”。创建成功后可使用 ls
或tree
查看文件目录。
- 文件说明:
mysite/
外层根目录:项目容器,名字不重要,由创建人命名。
mysite/manage.py
: 使得创建人与 Django project 互动的文件,参考document。
mysite/mysite/
内层目录是项目的Python package,创建人需要向py文件内添加各种python包(e.g.mysite.urls
).
mysite/mysite/__init__.py
: 一个空文件,负责告诉 Python 这个目录是一个python package。
mysite/mysite/settings.py
: Django project的设置/构造。 settings .
mysite/mysite/urls.py
: Django project 的 URL 声明(declarations); 一个网页内容的 url tabel URL dispatcher。
mysite/mysite/asgi.py
: 使得ASGI兼容服务器运行所创建的项目的文件 ASGI
mysite/mysite/wsgi.py
: 使得WSGI兼容服务器运行所创建的项目的文件 WSGI
- 在外层
mysite
目录下运行$ python manage.py check
此时可能会出现unapplied database migrations for now
的警告,请忽略,因为到此我们还没有管理数据库。而且这个命令会自动选 http://127.0.0.1:8000/端口,如果之前已经创建project占用此端口,你需要更改端口,例如运行命令:$ python3 manage.py check 8080
在pythonanywhere 运行时需要更改url来源
3.在外层mysite目录下创建应用App$ python manage.py startapp polls
, 这个指令也创建了一个新的文件夹,在这个文件夹下有很多自动创建的文件。
4.更改$ mysite/polls/views.py
, 这个更改的是刚一进入你的website时你的网页返回内容
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
项目和应用的区别:An app is a Web application that does something – e.g., a Weblog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.
5.添加$ mysite/polls/urls.py
, 为了调用上述views.py,需要将其map到一个URL。
from . import views
urlpatterns = [
path('', views.index, name='index'),]
6.添加$ mysite/mysite/urls.py
, 把web页面上的一些“root URLconf”链接到
polls.urls 文件上去。
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),]
path() 功能 至少两个arguments,route
and view
, 还有两个可选的arguments: kwargs
, and name
. ,可在链接中查看每个的含义。
- check it out:http://localhost:8000/polls/
BTW,polls是一个app,把这个修改好的文件夹放到其他project下仍然适用,如“/content/polls/”。