Terminal下载输入 pip install Django
1、cd到要储存代码的目录,运行命令:django-admin startproject mysite
这时当前目录创建mysite目录,此目录的文件结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- 外部mysite/:项目容器,可reneme manage.py:一个命令行实用程序,可让您以各种方式与此 Django 项目进行交互。
- manage.py 项目的管理、启动、创建APP(不需要修改,常常用)
- 内部mysite/:项目的实际python包,需要使用它来导入其中任何内容。
- mysite/__init__.py:告诉python目录这是一个python包
- mysite/settings.py:此项目的配置(常常操作)
- mysite/urls.py:由Django驱动的站点“目录” URL和函数的对应关系(常常操作)
- mysite/asgi.py:为你的项目提供服务的兼容ASGI的Web服务器的入口点 (不用改)
- mysite/wsgi.py:为您的项目提供服务的WSGI 兼容 Web 服务器的入口点。(不用改)
验证 Django 项目是否有效。切换到外部mysite目录:
py manage.py runserver
将会看到以下输出:
Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. May 21, 2022 - 15:50:53 Django version 4.0, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
请忽略数据库迁移的警告。
至此一个项目已经设置好了。
应用程序可以存在于Python路径上的任何位置。在本blog中,将会在文件目录中创建应用程序。
cd 到与manage.py同一目录下,在命令端输入
py manage.py startapp polls
将会在此路径中创建文件夹polls,布局如下
polls/
__init__.py //
admin.py //固定,不用动,django默认提供了admin后台管理
apps.py //固定,不用动,app启动类
migrations/ //固定,不用动,数据库变更记录
__init__.py
models.py //重要,对数据库操作
tests.py //固定,不用动,单元测试
views.py //重要,函数
2、写第一个视图
打开polls/views.py,将以下代码放入其中
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
要调用此界面,需要把它映射到一个URL,为此我们需要一个URLconf,在polls目录中创建URLconf,(创建一个名为urls.py的文件),此时目录应如下:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
urls.py
在polls/urls.py 文件中输入以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
下一步为将根URLconf指向polls.urls模块,添加一个import for django.urls.include 并且插入一个*include()*在urlpatterns 列表中,此时代码如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
该include()函数允许引用其他 URLconfs。每当 Django 遇到 时include(),它都会切断与该点匹配的 URL 的任何部分,并将剩余的字符串发送到包含的 URLconf 以进行进一步处理。
现在已经把视图连接到URLconf,验证它是否生效,在命令端输入
py manage.py runserver
并在浏览器中访问
http://localhost:8000/polls/
显示文本:Hello, world. You’re at the polls index.
该path()函数传递了四个参数:必要的有:route 和 view,可选的有: kwargs和name
三、数据库配置route
是一个包含 URL 模式的字符串。当处理一个请求时,Django 从在urlpatterns中沿着第一个pattern开始向下移动,将请求的URL与每一个pattern进行比较,直到找到匹配的一个。
view
当 Django 找到匹配的模式时,它会调用指定的视图函数,并将HttpRequest对象作为第一个参数,并将路由中任何“捕获”的值作为关键字参数。
默认配置使用SQLite。
编辑mysite/settings.py时,设置TIME_ZONE为您的时区。此外,INSTALLED_APPS文件顶部的设置。它包含在此 Django 实例中激活的所有 Django 应用程序的名称。应用程序可以在多个项目中使用,您可以打包和分发它们以供其他人在他们的项目中使用。
INSTALLED_APPS包含以下应用程序,所有这些应用程序都带有 Django:
django.contrib.admin– 管理站点。您很快就会使用它。
django.contrib.auth– 认证系统。
django.contrib.contenttypes– 内容类型的框架。
django.contrib.sessions– 会话框架。
django.contrib.messages– 消息传递框架。
django.contrib.staticfiles– 管理静态文件的框架
但是,其中一些应用程序至少使用了一个数据库表,因此我们需要在数据库中创建这些表才能使用它们。运行以下命令
py manage.py migrate
该migrate命令查看INSTALLED_APPS设置并根据文件中的数据库设置mysite/settings.py和应用程序附带的数据库迁移创建任何必要的数据库表。
四、创建模型在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据。
一个模型就是单个定义你的数据的信息源。模型中包含了不可缺少的数据区域和你存储数据的行为。
在这个投票应用中,需要创建两个模型:问题 Question 和选项 Choice。Question 模型包括问题描述和发布时间。Choice 模型有两个字段,选项描述和当前得票数。每个选项属于一个问题。这些概念可以通过一个 Python 类来描述。在polls/models.py中编辑如下:
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
每个模型被表示为 django.db.models.Model 类的子类。每个模型有许多类变量,它们都表示模型里的一个数据库字段。每个字段都是 Field 类的实例。



