一篇文章搞懂Django项目创建运行
一、安装Django
方法一:在cmd中安装Django
方法二:在pycharm中安装Django,点击settings,点击右边的加号即可添加库
搜索Django模块,点击install进行下载安装
二、创建Django项目
1、图文版创建Django项目
点击 file ——> new project 会弹出一下对话框
点击创建之后Django会自动生成以下目录文件
2、创建一个APP
一个Django项目可以包含多个APP,相当于一个模块包含多个子模块一样,可以相互独立,也可以相互联系,他们可以共享同一个资源,在终端terminal输入一条命令即可创建一个APP
python manage.py startapp APP的命名
回车
这样就创建了一个名为webapp的APP
例:命令行版创建Django项目(如果使用了图文版创建项目,这里可以忽略)
在终端terminal中先 cd 进入你想要存放项目的路径,然后输入以下命令创建一个 Django项目
django-admin startproject 你的项目名字
创建好项目之后,也要创建一个APP,比如这个APP的名字就叫webapp,首先要 cd 进入你刚刚创建的项目名下比如 cd mysite ,然后再输入以下命令
python manage.py startapp blog
这样APP也创建好了,可以进行以下步骤了
3、配置路由
4、编写视图函数
路由转发用户请求到的视图函数。视图函数处理用户请求,也就是业务处理逻辑,一般都在views.py文件里
5、运行Django项目
配置完以上的就可以运行Django项目了
点击网址发现页面报404了,说找不到页面
原因是因为我们在url.py路由文件中只配置了admin和index这两个url
所以我们在 http://127.0.0.1:8000/ 后面加个index就可以了,http://127.0.0.1:8000/index ,我们在views.py里面写的字符串就显示出来了
也可以看下admin这个url,发现这是一个Django管理员后台
三、发布网页
以上发布的只是我们写的一个字符串,我们要向做个网站的话总不能全部用字符串吧,接下来是返回HTML页面
1、在templates里面创建一个html页面
2、在html写内容
在templates新建一个html文件,然后在html文件中写点内容
然后我们在视图文件views.py中把这个页面给渲染出来
为了让Django知道我们的html文件在哪里,需要修改settings文件的相应内容
接下来我们重启一下Django,输入 http://127.0.0.1:8000/index 再刷新一下看看
OK,已经把html的内容成功渲染出来了
四、在Django中使用我们自己创建的 static 静态资源,这个静态资源可以存放html、JavaScript、css
这里存放了 jQuery 和 bootstrap 来试一下
我们在 index.html 中添加 bootstrap 样式试下,添加以下语句就可以使用bootstrap样式了
<link href="/static/css/bootstrap.css" rel="stylesheet">
具体可以参考bootstrap的官方文档 https://v3.bootcss.com/css/
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link href="/static/css/bootstrap.css" rel="stylesheet">
</head><style>body{background-color: #31708f;}h1{color: white;}.dv{text-align: center;margin: 0 auto;}form{position: fixed;top: 30%;left: 42%;width: 300px;margin: 0 auto;}.input_style{width: 300px;height: 50px;}
</style><body><div class="dv"><h1>Django Login</h1><form action="/index/" method="post"><input class="form-control input_style" type="text" name="username" placeholder="input your username"><br><input class="form-control input_style" type="password" name="password" placeholder="input your password"><br><input class="btn btn-primary input_style" type="submit" value="登录"></form></div>
</body>
</html>
这样发布项目的时候是访问不了这些框架的,因为我们还没有把 static 注册到settings文件中,就好像templates一样注册,在settings文件中的最后那里,添加以下语句即可
STATICFILES_DIRS = [ #这里使用的是数组括号,并不是花括号或者大括号os.path.join(BASE_DIR,'static'),
]
然后再发布一下,发现报错了,是端口被占用了,可以在cmd中输入netstat -ano查看是哪个端口被占用了,然后再任务管理中把它关掉就行了,一般是酷狗占用了
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 19, 2019 - 14:26:35
Django version 2.2.3, using settings 'django_demo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
或者在pycharm里面修改端口,点击run——>Edit Configurations
这样就可以正常访问了
一篇文章搞懂Django项目创建运行相关推荐
- 一篇文章搞懂filebeat(ELK)
一篇文章搞懂filebeat(ELK) https://www.cnblogs.com/zsql/p/13137833.html 目录 一.filebeat是什么 1.1.filebeat和beats ...
- c++ 计算正弦的近似值_一篇文章搞懂正弦保真性
本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...
- 一篇文章搞懂算法基础
源码地址 https://github.com/javanan/DataStructure 目录 时间复杂度介绍 空间复杂度介绍 递归算法与非递归算法区别和转换 折半查找/二分查找算法 链表实现 反转 ...
- 一篇文章搞懂架构师的核心技能
" 这是架构师系列的第一篇:核心技能,希望这个系列能完全揭示架构师这个职位:我先从核心技能开始,后续还有架构师之路,架构实战等架构师系列文章. 本文作者 陈睿 优知学院创始人,前携程定制旅游 ...
- 【一篇文章搞懂】什么是分布式锁?为什么要用分布式锁?看这篇文章准没错!
简介 HikariCP 是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,和 dr ...
- 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发
学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...
- reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式
在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...
- 一篇文章搞懂STL中的空间配置器allocator(原创,多图,易懂)
Table of Contents 0.引入 1.标准的空间配置器allocator 2.更为高效的空间配置器alloc 2.1----对象的构造与析构 2.1.1 对象的构造:::construct ...
- 一篇文章搞懂JavaScript运行机制
单线程的JavaScript: 众所周知JavaScript这门语言是单线程,但是为什么要设计成单线程呢?明明多线程更加有效率. 这里我们就要从JavaScript的用途来考虑,JavaScript是 ...
最新文章
- zabbix4.0搭建(基于CentOS6.8)
- 用户空间和内核空间通讯之【proc文件系统】
- java斗破苍穹游戏阵容,斗破苍穹手游竞技场阵容搭配解析 最强阵容你知道吗
- 一行Python代码就可以玩一些童年小游戏
- 本周六与您相约 | 计算未来轻沙龙:让机器拥有理解语言的能力
- 每天学点Linux命令:倒叙打印文件第二行的前100个大写字母
- 竞赛推荐:openEuler 高校开发者大赛启动!
- pytorch clamp 与clamp_区别
- 麓山滨江2021高考成绩查询,长沙2021高考成绩排名榜单,长沙各高中高考成绩喜报...
- MyCat双机HA高可用集群搭建_Keepalived安装和配置---MyCat分布式数据库集群架构工作笔记0029
- iOS 给webView加进度条(WKWebView)
- ssm网上书城系统毕业设计-附源码180919
- Ultraedit删除空白行
- 5操作系统的运行机制和体系结构
- oracle 无法归档日志,报all online log need archiving
- 无穷积分的符号计算及其MATLAB程序
- 如何添加或删除ubuntu用户和组
- MATLAB弹出窗口定义操作函数
- 计算机二级 word准靠证,计算机二级考试真题-Word-小郑-会计准考证
- python提取数字前6位_取Pandas列的前6位数
热门文章
- 零售店铺想要日进斗金?这三个点照着做就行!
- 2020 BAPC Preliminaries 题解
- 为什么百度语音比科大讯飞差了几条街?
- 算法设计与分析: 4-11 硬币找钱问题
- Vitis下载安装尝试
- 红绿3d眼镜与红蓝3d眼镜区别_Rokid X 非白三维,AR眼镜 + 3D扫描
- vue微信浏览器安卓正常 ios config 报错 “errMsg“:“config:invalid问题
- 小游戏:俄罗斯方块(Qt 5.9.8)
- cie规定的标准光源_标准光源
- 汉服经济迎来“井喷式”发展!vr全景助力汉服数字化蜕变