Django创建应用和项目基本流程学习(二)
创建项目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属性中的DIRS和APP_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创建应用和项目基本流程学习(二)相关推荐
- Django 创建第一个项目
文章目录 Django 创建第一个项目 Django 管理工具 创建第一个项目 视图和 URL 配置 HelloWorld/HelloWorld/views.py 文件代码: HelloWorld/H ...
- django创建新的项目、App与基本配置
实现安装django,使用pip安装即可:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django 创建新项目 创建一个名称为ne ...
- django创建第一个项目
目录 创建第一个项目 cannot import name 'url' from 'django.conf.urls'编辑 HelloWorld/HelloWorld/views.py 文件代码:
- Intel MediaSDK sample_decode 官方GPU解码流程学习(二) - 在双显卡机器上实现DirectX11 D3D11和OpenCL共享资源
很久以前写过有关D3D11和OCL直接共享显存的代码, Intel MediaSDK sample_decode 官方GPU解码流程学习 - DirectX11 D3D11和OpenCL共享资源 这段 ...
- Django创建图书管理项目(完整版
一.创建项目test1及应用booktest 创建应用booktest 二.安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INS ...
- 路飞项目整体流程(二)
文章目录 一.配置之封装Logger 二.配置之封装全局异常 三.后台配置之二次封装Response 四.数据库配置 五.User模块User表配置 六.开放Media访问 七.路飞前端项目创建配置 ...
- Django创建项目
安装Django pip install Django Django 创建第一个项目 Django 管理工具 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py ...
- Python Django(一)—— Django 简介、安装、创建第一个项目
Django 是由 Python 编写的一个开源 Web 应用框架,Python + Django 是快速开发.设计.部署网站的最佳组合. Django 版本与 Python 环境的对应表如下,建议对 ...
- 视频教程-Python+Vue+Django前后端分离项目实战-Python
Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...
最新文章
- oracle中lock的解释
- php模拟post上传图片,php模拟post上传图片解决方法
- 书多嚼不烂,看书的方法
- 【c++】14.编译proto和proto相关用法
- Weka学习二(聚类算法)
- 架构设计从这5点考虑,能帮后期运维很大忙!
- react当中子组件改变父组件的状态
- 16位汇编 使用word ptr和byte ptr的寻址方式
- spark从hbase读取写入数据
- java中的页面:JSP(已过时)
- Docker实践(六)部署redis
- 【转】TeXmacs:一个真正“所见即所得”的排版系统
- vue 百度统计_2021暑期实习面经百度篇
- 【数据结构和算法笔记】二叉树的概念和性质
- 给Fedora11安装五笔
- C++--第26课 - 异常处理 - 下
- c语言指数公式_c语言指数函数
- 基于CNN的人脸 性别、年龄识别
- 电脑文件备份到移动硬盘的方法
- word双栏左右不能对齐
热门文章
- rest-framework:认证组件
- UVa 10118 记忆化搜索 Free Candies
- MySQL同步复制搭建方法指南详细步骤
- systypes的详解
- PyCharm缺少cv2模块怎么办?怎样在PyCharm中安装自己需要的package?
- OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
- linux存储--dup和dup2函数解析(十八)
- leetcode算法题--最长公共子序列★
- python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案).doc...
- Windows下用C语言获取进程cpu使用率,内存使用,IO情况