使用Django创建站点(1)
快速建立站点
# 创建新的conda环境
conda create -n django python django
# 创建新站点
django-admin startproject locallibrary
cd locallibrary
# 运行web服务器
python ./manage.py runserver
conda(4.10.3) 虚拟环境 - python: 3.7 - Django: 2.2.5 - mysqlclient: 1.3.14
mysqlclient
是可选的,没有支持最高版本的
Python
。 Django
默认使用的数据库是
Sqlit3
。
学习目标...
- 运用Django的工具创建网站和应用的框架。
- 启动和停止开发用的服务器。
- 创建模型(models)用来代表应用里的数据。
- 运用Django的admin站点填充网站数据。
- 面对不同的网络请求,创建视图函数(views)取回相应的数据。并把数据用模板(templates )渲染成HTML展示在浏览器里。
- 创建网络分发器,将不同的URL模式分发给特定的视图函数(views)。
- 添加用户认证和会话(sessions)管理网站行为和进入权限。
- 使用表单。
- 为应用编写测试。
- 有效运用Django的安全系统。
- 把应用布置到生产环境中。
建立新的应用
框架搭建网站的过程: -
使用django-admin
工具创建工程的文件夹,基本的文件模板和工程管理脚本(manage.py
)。
- 用manage.py
创建一个或多个应用。 - 在工程里注册新的应用。
- 为每个应用分配url。
locallibrary项目的子文件夹是整个网站的进入点: - settings.py 包含所有的网站设置。这是可以注册所有创建的应用的地方,也是静态文件,数据库配置的地方,等等。 - urls.py 定义了网站url到view的映射。虽然这里可以包含所有的url,但是更常见的做法是把应用相关的url包含在相关应用中,你可以在接下来的教程里看到。 - wsgi.py 帮助Django应用和网络服务器间的通讯。你可以把这个当作模板。 - manage.py 脚本可以创建应用,和数据库通讯,启动开发用网络服务器。
# 创建catalog应用框架
python manage.py startapp catalog
catalog应用框架需要后续的补充修改,以达到自己的预期 - views.py 视图 - models.py 模型 - tests.py 测试 - admin.py 网站管理设置 - apps.py 注册应用 - migration 文件夹,用来存储“migrations”——当你修改你的数据模型时,这个文件会自动升级你的数据库。 - 可能需要补充 url映射,网站模板,静态文件
站点的setting.py
文件配置
- ALLOWED_HOSTS 域名白名单,ALLOWED_HOSTS = ['127.0.0.1']
- INSTALLED_APPS 注册应用。
INSTALLED_APPS = [ ..., 'catalog.apps.CatalogConfig', ]
- DATABASES 数据库,在Django文档里找到详细的配置数据库的方法
- TIME_ZONE 时区
TIME_ZONE = 'Asia/Shanghai'
- SECRET_KEY 密钥
- DEBUG 日志,是否在网页显示错误信息
站点的urls.py
文件配置
URL映射器
- 将带有
catalog/
的请求转发到模块catalog.urls
(使用相对路径 URL /catalog/urls.py)。# Use include() to add paths from the catalog application from django.conf.urls import include from django.urls import path urlpatterns += [ path('catalog/', include('catalog.urls')), ]
- 网站的根URL(例:
127.0.0.1:8000
)重定向到该URL:127.0.0.1:8000/catalog/
#Add URL maps to redirect the base URL to our application from django.views.generic import RedirectView urlpatterns += [ path('', RedirectView.as_view(url='/catalog/')), ]
- 在开发期间启用静态文件的服务
# Use static() to add url mapping to serve static files during development (only) from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
数据库迁移
Django 使用对象关系映射器(ORM),会跟踪更改并创建数据库迁移脚本,运行以下命令来定义数据库中这些模型的表(确保你位于包含 manage.py 的目录中):
python manage.py makemigrations
python manage.py migrate
每当进行重大更改时,都应重新运行迁移并重新测试站点。
自此站点的整体骨架构建完成并运行,是时候开始编写代码,让这个网站做它应该做的事情了。
参考文献
本文依据此教程所撰