Web应用程序 | 您所在的位置:网站首页 › 创建Chess › Web应用程序 |
建立项目 建立虚拟环境 python -m venv ll_env 激活虚拟环境 ll_env/Scripts/activate (停止 deactivate) 安装Django pip install django 在Django 中创建项目 django-admin startproject learning_log 创建数据库 pythonv manage.py migrate 查看项目 python manage.py runserver (Ctrl + C 关闭)
创建应用程序 另开一个终端,切换到manage.py 所在目录,激活虚拟环境 python manage.py startapp learning_logs 定义模型 Topic(类), 属性:text, date_added, 方法 __str__ 激活模型 配置 settings.py "Installed_app"中添加“learning_logs” 修改数据库 python manage.py makemigrations learning_logs (在migration下自动创建0001_initial.py,在数据库中为Topic创建一个表) python manage.py migrate (Applying) 修改管理数据的三个步骤: 修改models.py——对 learning_logs 调用makemigrations——让Django 迁移项目
Django管理网站 1、创建超级用户 python manage.py createsuperuser 2、向管理网站注册模型 admin.py from .models import Topic admin.site.register(Topic) (可访问 https://localhost:8000/admin/. 输入用户名和密码,可修改添加用户和用户组,管理Topic相关的数据) 3、添加主题 创建Chess 和 Rock Climbing 两个主题 新增模型 Entry (条目) 属性:topic, text, date_added, 嵌套Meta 类, 方法__str__ 注册模型 Entry 新增3个条目 Django shell 交互环境 python manage.py shell 启动 python 解释器 from learning_logs.models import Topic topics = Topic.objects.all() for topic in topics: print(topic.id, topic) t = Topic.objects.get(id=1) t.text t.date_added t.entry_set.all() 通过外键获取数据 相关模型的小写名称、下划线和单词 set
创建页面: 学习笔记主页 创建页面三个阶段:定义URL、编写视图和编写模板。 定义URL 映射URL:在 learning_log/urls.py path('admin/', admin.site.urls) 添加 from django.urls import path, include path('', include('learning_logs.urls')) 新建 learning_logs/urls.py 定义learning_logs 的URL模式 from django.urls import path from . import views app_name = 'learning_logs' url-patterns = [ # 主页 path('', views.index, name = 'index') ] 编写视图 learning_logs/views.py def index(request): ""学习笔记的主页。"" return render(request, 'learning_logs/index.html') 编写模板 learning_log/learning_logs/templates/learning_logs/index.html
创建其他页面 模板继承 父模板 base.html 模板标签 {% url 'learning_logs: index '%} 命名空间 HTML链接用锚标签定义: link text 块标签: {% block content %} {% endblock content %} 子模板 index.html {% extends "learning_logs/base.html" %}
显示所有主题的页面 1、URL模式 显示所有主题的URL http://localhost:8000/topics/ 修改learning_logs/urls.py #添加显示所有主题。 path('topics', views.topics, name='topics') 2、视图 修改learning_logs/views.py from .models import Topic def topics(request): "显示所有的主题。"" topics = Topic.objects.order_by('date_added') context = {'topics': topics} # 发送给模板的上下文 return render(request, 'learning_logs/topics.html', context) 3、模板 topics.html 项目列表为无序列表, 循环 {% for item in list %} do something with each item {% endfor %} {{ 模板变量 }} 一个项目列表项,在内部 列表为空时的处理
修改父模板 base.html Learning Log - Topics
显示特定主题的页面 1、url 模式 learning_logs/urls.py path('topics//', views.topic, name='topic') # 特定主题的详细页面 2、视图 views.py def topic(request, topic_id): '''显示单个主题及其所有的条目‘’‘ topic = Topic.objects.get(id=topic_id) entries = topic.entry_set.order_by('-date_added') # -表示指定降序 context = {'topic': topic, 'entries': entries} return render(request, 'learning_logs/topic.html', context) 3、模板 竖线(|)表示模板过滤器 {{ entry.date_added | date: 'M d, Y H:i '}} {entry.text | linebreaks } 将包含换行符的长条目转换为浏览器能够理解的格式 4、将显示所有主题的页面中的主题设置为链接 修改topics.html {{ topic }}
|
CopyRight 2018-2019 实验室设备网 版权所有 |