创建项目project

创建learning_log项目

  • 在terminal中进入项目路径(manage.py所在文件夹,后面用project_path$表示),输入如下指令:
project_path$ django-admin startproject libnotes .
  • settings: 指定Django如何与系统交互及如何管理项目
  • urls: 告诉Django应创建哪些网页来响应浏览器请求
  • wsgi: 帮助Django提供它创建的文件,web server gateway interface(web服务器网关接口)

试运行server,并自动创建db.sqlite3数据库文件

  • 在terminal中输入如下指令:
project_path$ python manage.py runserver
  • 复制terminal中“Starting development server at http://...:8000/”到浏览器,查看效果
  • 此时项目路径中会自动生成db.sqlite3,创建一个名为0001_initial.py的迁移文件

数据库的实施应用

  • 在terminal中输入如下指令
project_path$ python manage.py makemigrations # 会提示没有需要更新的数据
project_path$ python manage.py migrate  # 应用上个模块中生成的迁移文件

创建超级管理员

  • 在terminal中输入如下指令:
project_path$ python manage.py createsuperuser

AdminName@Password

创建应用程序app: /notes/

创建app

  • 在terminal中输入如下指令:
project_path$ python manage.py startapp learning_logs
  • models: 定义我们要在应用程序中管理的数据,告诉Django如何处理应用程序中存储的数据。代码层面models就是类,有属性和方法
  • admin
  • view

激活模型,配置

  • 修改settings中installed_apps, 让Django将应用程序app包含到项目project中
INSTALLED_APPS = ['notes',] # settings里增加app
  • 同时修改settings中的TEMPLATES属性中的DIRSAPP_DIES
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True, # True: 先根据DIRS搜索,找不到再到各个应用的templates目录找,False:不再搜索应用的templates目录

项目urls中加入应用地址

from django.urls import includeurlpatterns = [path('notes/', include('notes.urls', namespace='notes')),]
# urlpatterns = [path('notes/', include('notes.urls', "notes"), namespace='notes')),],app_name被放到下面的子路径中

在应用中创建子页面:/note/about/

给子页面增加路径文件

  • 在应用文件夹中增加urls.py
  • 在子页面的路径增加视图view路径(代码如下),此处直接调用TemplateView的包所以不用import自写的view包
from django.urls import path
from django.views.generic import TemplateViewapp_name = "notes"
urlpatterns = [path('about/', TemplateView.as_view(template_name="notes/about.html"), name='about'),
]

方案一:配置需调用的静态文件(css/fonts/image/js)

  • 修改settings中的TEMPLATES属性中的STATICFILES_DIRS
STATICFILES_DIRS = [os.path.join(BASE_DIR, "common_static"),
]
  • 方案二:还可以参考# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, "collected_static")

给about页面增加template

  • project目录中创建templates文件夹
  • templates文件夹中创建about.html
  • 在.templates/notes/about.html中写入template代码

编写基于类的视图

创建基于TemplateView类的AboutView类,可以自己修改类内功能

修改app应用路径中的views.py文件

from django.views.generic import TemplateViewclass AboutView(TemplateView):template_name = "notes/about.html"
# 可以理解为AboutView是个专用类,此处可以定义抓用类的template名字,而TemplateView是个公用类,所以每次调用都需要定义模板名字

再修改应用urls中的urlpatterns调用函数

urlpatterns = [path('about/', AboutView.as_view(), name="about")# path('about/', TemplateView.as_view(template_name="notes/about.html"),name='about'),
]

数据库交互

创建数据模型

  • 在app应用路径中的models.py创建Notes类

  • 其中用到slugify

作用:用于将字符串中的所有空格替换成连接符(-),并将所有字符转换为小写。 这样其实就生成了一个 slug ,可以很好的用于创建URL
空格在URL中不被允许
  • 数据库中会生成notes_notes, 即appName_className
  • 创建好模型之后,执行迁移数据,完成数据库更新
python manage.py makemigrations
# 创建一个名为0001_initial.py的迁移文件,可以在上面数据库中增加
python manage.py migrate
# 应用这种迁移
  • 参阅https://docs.djangoproject.com/en/1.8/ref/models/fields

  • Operation to perform:

    • Synchronize unmigrated apps: 同步未迁移文件
    • Apply all migrations: 应用迁移

查看数据库数据结构

  • 进入数据库,进入项目路径,terminal中输入如下信息
sqlite3 db.sqlite3
# 进入数据库环境,显示为sqlite>
  • 查看数据库所有的数据表
sqlite>.tables
  • 查看某个表的结构
sqlite>pragma table_info(notes_notes);
  • 选择一个数据表用SQL语句插入一条数据
sqlite>insert into notes_notes(title, slug, overview, created, user_id) values (" django web", "django-web", "add model test", "2020-06-11", 1);
  • 从表notes_notes数据表中选择所有的数据
sqlite>select * from notes_notes;
  • 退出sqlite环境
sqlite>.quit

Django创建应用和项目基本流程学习(二)相关推荐

  1. Django 创建第一个项目

    文章目录 Django 创建第一个项目 Django 管理工具 创建第一个项目 视图和 URL 配置 HelloWorld/HelloWorld/views.py 文件代码: HelloWorld/H ...

  2. django创建新的项目、App与基本配置

    实现安装django,使用pip安装即可:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django 创建新项目 创建一个名称为ne ...

  3. django创建第一个项目

    目录 创建第一个项目 cannot import name 'url' from 'django.conf.urls'​编辑 HelloWorld/HelloWorld/views.py 文件代码:

  4. Intel MediaSDK sample_decode 官方GPU解码流程学习(二) - 在双显卡机器上实现DirectX11 D3D11和OpenCL共享资源

    很久以前写过有关D3D11和OCL直接共享显存的代码, Intel MediaSDK sample_decode 官方GPU解码流程学习 - DirectX11 D3D11和OpenCL共享资源 这段 ...

  5. Django创建图书管理项目(完整版

    一.创建项目test1及应用booktest 创建应用booktest 二.安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INS ...

  6. 路飞项目整体流程(二)

    文章目录 一.配置之封装Logger 二.配置之封装全局异常 三.后台配置之二次封装Response 四.数据库配置 五.User模块User表配置 六.开放Media访问 七.路飞前端项目创建配置 ...

  7. Django创建项目

    安装Django pip install Django Django 创建第一个项目 Django 管理工具 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py ...

  8. Python Django(一)—— Django 简介、安装、创建第一个项目

    Django 是由 Python 编写的一个开源 Web 应用框架,Python + Django 是快速开发.设计.部署网站的最佳组合. Django 版本与 Python 环境的对应表如下,建议对 ...

  9. 视频教程-Python+Vue+Django前后端分离项目实战-Python

    Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

最新文章

  1. oracle中lock的解释
  2. php模拟post上传图片,php模拟post上传图片解决方法
  3. 书多嚼不烂,看书的方法
  4. 【c++】14.编译proto和proto相关用法
  5. Weka学习二(聚类算法)
  6. 架构设计从这5点考虑,能帮后期运维很大忙!
  7. react当中子组件改变父组件的状态
  8. 16位汇编 使用word ptr和byte ptr的寻址方式
  9. spark从hbase读取写入数据
  10. java中的页面:JSP(已过时)
  11. Docker实践(六)部署redis
  12. 【转】TeXmacs:一个真正“所见即所得”的排版系统
  13. vue 百度统计_2021暑期实习面经百度篇
  14. 【数据结构和算法笔记】二叉树的概念和性质
  15. 给Fedora11安装五笔
  16. C++--第26课 - 异常处理 - 下
  17. c语言指数公式_c语言指数函数
  18. 基于CNN的人脸 性别、年龄识别
  19. 电脑文件备份到移动硬盘的方法
  20. word双栏左右不能对齐

热门文章

  1. rest-framework:认证组件
  2. UVa 10118 记忆化搜索 Free Candies
  3. MySQL同步复制搭建方法指南详细步骤
  4. systypes的详解
  5. PyCharm缺少cv2模块怎么办?怎样在PyCharm中安装自己需要的package?
  6. OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
  7. linux存储--dup和dup2函数解析(十八)
  8. leetcode算法题--最长公共子序列★
  9. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案).doc...
  10. Windows下用C语言获取进程cpu使用率,内存使用,IO情况