Django Web开发基础环境配置流程
创建虚拟环境
mkvirtualenv django_py3_1.11 -p python3
注意需要联网
安装Django
使用django 1.11.11版本,注意需要联网
pip install django==1.11.11
复习虚拟环境和pip的命令
# 虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境# pip
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖包
pip freeze # 冻结当前环境的依赖包
创建工程
创建工程的命令为:
django-admin startproject 工程名称
- 与项目同名的目录,此处为demo。
- settings.py 是项目的整体配置文件。
- urls.py 是项目的URL配置文件。
- wsgi.py 是项目与WSGI兼容的Web服务器入口。
- manage.py 是项目管理文件,通过它管理项目
运行开发服务器
python manage.py runserver ip:端口
或:
python manage.py runserver
可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
创建子应用
在django中,创建子应用模块目录仍然可以通过命令来操作,即:
python manage.py startapp 子应用名称
manage.py 为上述创建工程时自动生成的管理文件。
- admin.py 文件跟网站的后台管理站点配置相关。
- apps.py 文件用于配置当前子应用的相关信息。
- migrations 目录用于存放数据库迁移历史文件。
- models.py 文件用户保存数据库模型类。
- tests.py 文件用于开发测试用例,编写单元测试。
- views.py 文件用于编写Web应用视图。
注册安装子应用
注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。
例如,将刚创建的users子应用添加到工程中,可在INSTALLED_APPS列表中添加'users.apps.UsersConfig'。
创建视图
打开刚创建的users模块,在views.py中编写视图代码。
from django.http import HttpResponsedef index(request): """ index视图 :param request: 包含了请求信息的请求对象 :return: 响应对象 """ return HttpResponse("hello the world!"
说明:
- 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。
- 视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。
在users/urls.py文件中定义路由信息。
from django.conf.urls import urlfrom . import views# urlpatterns是被django自动识别的路由列表变量 urlpatterns = [ # 每个路由信息都需要使用url函数来构造 # url(路径, 视图) url(r'^index/$', views.index), ]
在工程总路由demo/urls.py中添加子应用的路由数据。
from django.conf.urls import url, include
from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls), # django默认包含的 # 添加 url(r'^users/', include('users.urls')), ]
- 使用include来将子应用users里的全部路由包含进工程路由中;
- r'^users/' 决定了users子应用的所有路由都已/users/开头,如我们刚定义的视图index,其最终的完整访问路径为/users/index/。
启动运行
重新启动django程序
python manage.py runserver
路由命名与reverse反解析(逆向)
路由命名
在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。
1) 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如
url(r'^users/', include('users.urls', namespace='users')),
命名空间表示,凡是users.urls中定义的路由,均属于namespace指明的users名下。
命名空间的作用:避免不同应用中的路由使用了相同的名字发生冲突,使用命名空间区别开。
2) 在定义普通路由时,可以使用name参数指明路由的名字,如
urlpatterns = [url(r'^index/$', views.index, name='index'),url(r'^say', views.say, name='say'),
]
reverse反解析
使用reverse函数,可以根据路由名称,返回具体的路径,如:
from django.core.urlresolvers import reverse # 注意导包路径def index(request): return HttpResponse("hello the world!") def say(request): url = reverse('users:index') # 返回 /users/index/ print(url) return HttpResponse('say')
- 对于未指明namespace的,reverse(路由name)
- 对于指明namespace的,reverse(命名空间namespace:路由name)
静态文件
项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理。在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方式配置静态文件路径。静态文件可以放在项目根目录下,也可以放在应用的目录下,由于有些静态文件在项目中是通用的,所以推荐放在项目的根目录下,方便管理。
为了提供静态文件,需要配置两个参数:
- STATICFILES_DIRS 存放查找静态文件的目录
- STATIC_URL 访问静态文件的URL前缀
示例
1) 在项目根目录下创建static_files目录来保存静态文件。
2) 在demo/settings.py中修改静态文件的两个参数为
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files'),
]
3)此时在static_files添加的任何静态文件都可以使用网址 /static/文件在static_files中的路径 来访问了。
例如,我们向static_files目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8000/static/index.html来访问。
或者我们在static_files目录中添加了一个子目录和文件goods/detail.html,在浏览器中就可以使用127.0.0.1:8000/static/goods/detail.html来访问。
注意
Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。
当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供。
转载于:https://www.cnblogs.com/yunlongaimeng/p/9785138.html
Django Web开发基础环境配置流程相关推荐
- Eclipse 进行 web开发的环境配置
文章目录 Eclipse进行web项目编写 JDK11 安装配置 JDK下载安装 JDK环境配置 Eclipse IDE 2018-12(64位) 下载安装 下载 界面及举例 Tomcat-9.0.1 ...
- 前端基础入门第一阶段-Web前端开发基础环境配置
Web前端和全栈的定义: A.什么是传统传统web前端:需要把设计师的设计稿,切完图,写标签和样式,实现JS的效果,简而言之即只需要掌握HTML的页面结构,CSS的页面样式,javaScript页面的 ...
- 【重磅推荐】centos7新装系统基础环境配置流程【完整搬家基本软件安装】
必备基础软件大全: # 运行命令netstat yum install net-tools -y# tab自动补全 yum -y install bash-completion centos7实时同步 ...
- 【weex开发】环境配置流程
1,安装node.js node官网下载,然后安装即可. 安装完成以后可以查看node和npm版本 $ node -v v6.11.3 $ npm -v 3.10.10 2,安装weex-toolki ...
- Django Web 开发极简实战
课程介绍 本课程是一个系列基础教程,目标是带领读者上手实战 Django Web 开发,课程以 Django 1.10 为基础,通过一个在线视频网站的构建,实战化的介绍 Django Web 开发中涉 ...
- 掌握web开发基础系列--物理像素、逻辑像素、css像素
思考一下 什么是物理像素?什么是css像素? 在 <掌握web开发基础系列--长度单位> 这篇文章中已经介绍过了css像素单位--px,这篇文章详细探讨一下设备物理像素和css像素之间的关 ...
- 提高生产力:Web开发基础平台WebCommon的设计和实现
Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...
- 不过如此! jdk 的安装/配置环境变量 jdk与openjdk 的区别 jdk 官网下载所需账号密码 虚拟机基础环境配置 超详细安装教程/介绍 Ubuntu18.04 SDN软件定义网络实验
前情提要:我们已经完成了虚拟机的联网.ssh + vmtools + net-tools + vim的基础环境配置.接下来将进行jdk的安装与环境变量的配置,并介绍jdk与openjdk的区别,分享一 ...
- Python Django Web开发入门-刘硕-专题视频课程
Python Django Web开发入门-16018人已学习 课程介绍 使用强大的Django Web框架轻松高效的开发网站,各类web应用(微信公众平台) 课程收益 Dja ...
最新文章
- 关于c++预编译符的使用
- Servlet - HTTP超文本传输协议
- Http client 请求
- Cocoapods 第三方类库管理工具
- 【SeeMusic】视频编辑 ( 视频 X 坐标 | 视频 Y 坐标 | 视频旋转 | 视频扭曲 )
- 辨析Java与Javascript
- c语言冒泡排序(解析)
- 3d geometric model website http://www.cse.ohio-state.edu/~tamaldey/
- indesign如何画弧线_【美妆】鼻影怎么画,才能拥有比例完美的鼻子?
- 重构指南 - 封装条件(Encapsulate Conditional)
- input输入框清除样式
- JavaWeb图书管理系统.rar(毕业设计(论文)+毕业设计指导书+大学毕业设计任务书+图书管理系统+毕业论文答辩)
- 关于SWAT模型的一些原理(二)
- Java中文乱码解决方式
- 如何查看计算机硬盘规格大小,台式机硬盘如何查看大小
- 局域网互传文件工具_如何在 iOS、Android、macOS、Windows 之间快速文件互传?
- maikr博客备份工具 3.0.0.0 详细介绍
- Excel数据分析(七)第六章数据透视表
- Android 点击换头像(拍照和从相册选择)
- 力扣 两数相加 C语言 题解
热门文章
- 01、python数据分析与机器学习实战——Python科学计算库-Numpy
- ubuntu16.04 安装ros
- 【机器视觉】 else算子
- 【C++】Visual Studio教程(六) -更新Visual Studio
- 【Linux系统编程】vfork() 函数详解
- 【Linux】一步一步学Linux——date命令(81)
- linux+android4.2键值关系,Android4.0 添加一个新的Android 键值
- Android 从ImageView中获取Bitmap对象方法
- 每天一道LeetCode-----杨辉三角
- 选择互斥 html,利用JS对两行Input radio 进行互斥选择。