基础知识:
1.设计模型model
Django 无需数据库就可以使用,通过对象关系映射器(Object-relational mapping),仅使用 Python 代码就可以描述数据结构
models.py 文件主要用一个 Python 类来描述数据表
2.设计视图 Views
在模型被定义之后,我们便可以在视图中引用模型。通常,视图根据参数检索数据,加载一个模板,并使用检索到的数据呈现模板
views.py 文件包含了页面的业务逻辑
3 设计链接 Urls
建立 URL 和 Python 回调函数简单的映射关系;urls.py 指出了什么样的 URL 调用什么视图
4 设计模板 Templates
Django 的这种结构我们称之为 MTV 模式:M 代表模型(Model),T 代表模板(Template),V 代表视图(View)。这三个分别代表了三种不同功能的 Web 应用,各司其职,又彼此合作。 大家一定听说过 MVC 模式(Mode-View-Controller),MTV 模式本质上与 MVC 相同,都是让各组件保持低耦合的关系。 关于 MTV 模式我们将在后面部分详细的讲解
实战
前提:window10 pycharm Django 环境
安装Django
pip install Django
备注:由于我们是在虚拟环境中工作,因此在所有的系统中,安装Django的命令都相同:不需要指 定标志--user,也无需使用python -m pip install package_name这样较长的命令。 别忘了,Django仅在虚拟环境处于活动状态时才可用。
虚拟环境创建:(window10)
1、搭建虚拟环境
创建系统位置(建立文件夹,名为website;再在终端中切换到这个目录,并创建一个虚 拟环境。如果你使用的是Python 3,可使用如下命令来创建虚拟环境:)
命令: python -m venv ll_env(ll_env是自定义命名)-这里运行了模块venv,并使用它来创建一个名为ll_env的虚拟环境。
2、启动虚拟环境(关闭)
激活命令:ll_env\Scripts\activate--(ll_env是自定义命名)
关闭命令:deactivate
3、安装Django
命令: pip install Django
在Django 中创建项目 -环境运行
1、创建项目
django-admin startproject myblog .(注:这里的“.”是为了防止出现多一级的目录,这个适用于已经创建了文件夹的情况)
2、启动服务:
python manage.py runserver
3、创建APP应用
python manage.py startapp myapp(myapp)
4、启动服务器
在有manage.py文件存在的根目录里,运行以下的命令
python manage.py runserver
浏览器里输入网址: http://127.0.0.1:8000/,出现以下页面就是成功运行了
恭喜你,成功运行起第一个 Django 项目。
运行完毕过后 ctrl+c 关闭服务器
为项目创建数据库
python manage.py migrate
我们将修改数据库称为迁移数据库。首次执行命令migrate时,将让Django确保数据库与项 目的当前状态匹配
让Django修改数据库,使其能够存储与模型 Topic 相关的信息
python manage.py makemigrations +appname
定义模型 (models.py)
models.py
激活模型:
注册模型:
添加到admin中
模块配置
备注:这个例子最终目的是为了完成一个对数据库进行增删改查的独立模块
Django 视图操作
编写视图:
view.py仅编写视图函数,并不能在 Django 页面上显示出来。如果想要看到效果,我们需要使用 URL 来映射到它
URLs 配置
# 让Django知道如何将浏览器请求与网站 URL匹配,以确定返回哪个网页
目录里新建urls.py文件-创建映射
urlspath()函数,它共有 4 个参数:
path参数解释在上面的代码中,route为空意味着我们可以直接用链接http://localhost:8000/lib/访问该视图函数,view=view.index是调用了view.py中的index视图,name为index代表我们可以在模板中用 index 来引用返回的变量。
记住,改变模型需要这三步:
编辑 models.py 文件,改变模型。
运行 python manage.py makemigrations 为模型的改变生成迁移文件。
运行 python manage.py migrate 来应用数据库迁移。
创建超级用户
Python manage.py createsuperuser
网友评论