使用Django搭建web服务器的例子(最最正确的方式)


Posted in Python onAugust 29, 2019

今晚在Mac OS中搭建web服务器时遇到一点冲突,逛了几个论坛和网站,都说的太片面。

先列出最正确的搭建步骤:(无论你是任何操作系统,或者任何版本,都没毛病)

① 随便找个位置建一个文件夹(比如:Windows下的D盘)

② 打开终端(Windows下是cmd) cd 进入文件夹位置(简单吧)

③ 创建一个虚拟环境(虚拟环境就是磁盘一个位置,为了后续部署到服务器,这也是必须的并且是最正确的一步)

④ 激活虚拟环境

⑤ 安装Django

⑥ 在Django 中创建一个项目

⑦ 创建数据库

⑧ 使用 runserver 命令启动服务器

请提前安装好 python3.6、pip3 及 pycharm 专业版。

----------------------------------------------------------

每一步都超简单,几分钟就完成了。。不要信那些乱七八糟的讲解。首先他们不是创建的虚拟环境,就是错的。

我看好多人都写踩了几天几夜的坑集成了SQLite,配置Django到path环境变量……一系列错误操作

----------------------------------------------------------

我在工作目录下新建了一个文件夹 qihao_blog

使用Django搭建web服务器的例子(最最正确的方式)

cd进入 qihao_blog 目录后创建一个虚拟环境

python3 -m venv ll_env

这一步创建了一个名为 ll_env 的虚拟环境(随便起了一个名字而已)

使用Django搭建web服务器的例子(最最正确的方式)

运行python3 -m venv ll_env 命令之后会在我们文件夹下创建一个文件夹 ll_env 这个文件夹就是虚拟环境

----------------------------------

这一步要讲一下,由于Mac系统自带Python2.7,Xcode目前最高仅支持2.7,

所以开发IOS的就不要卸载系统自带的Python2.7。直接安装Python 3.6就可以了。

需要注意的是直接运行Python命令调用的是2.7,调用Python3.6需要使用 Python3 命令

----------------------------------

Windows用户没有以上问题。。。。。

这一步仅仅建个文件夹输一条命令就完事了,PyCharm直接创建项目对pip版本有要求,不支持现在的新版pip,需要降级。

如果你使用的是较早的Python版本,或者系统没有正确设置,不能使用模块venv,需安装virtualenv包

(最好还是使用Python3)

接下来激活虚拟环境

source ll_env/bin/activate

注意 如果你使用的是Windows系统,请使用命令 ll_env\Scripts\activate(不包含source)来激活这个虚拟环境。

要停止使用虚拟环境,可执行命令:deactivate

使用Django搭建web服务器的例子(最最正确的方式)

环境处于活动状态时,环境名将包含在括号内。在这种情况下,可以在环境中安装包,并使用已安装的包。

在ll_env虚拟环境中安装的包仅在该环境处于 活动状态 时才可用。

安装Django

创建并激活虚拟环境后,就可安装Django了:

pip install Django

这只是把Django安装在刚才创建的虚拟环境文件夹里。

由于是在虚拟环境中工作,因此在所有的系统中,安装Django的命令都相同:

无需使用python -m pip install package_name 这样较长的命令。更不用配置path环境变量。因为不是系统环境。

别忘了,Django仅在虚拟环境处于活动状态时才可用。

使用Django搭建web服务器的例子(最最正确的方式)

很多人用一条命令验证Django的path环境变量配置的是否正确。

如果不放心你可以试试虚拟环境能不能调用

django-admin help

使用Django搭建web服务器的例子(最最正确的方式)

记住这个时候虚拟环境是激活状态…………(前面有个括号,里面是虚拟环境名字)

接下来在Django 中创建一个项目

这个时候建议使用我们常用的PyCharm,当然也可以继续使用dos命令窗口。

PyCharm中打开刚才新建的qihao_blog文件夹

使用Django搭建web服务器的例子(最最正确的方式)

很多人会疑惑,我为什么不从第一步开始就使用PyCharm直接创建一个Django项目呢???

当然PyCharm会自动创建虚拟环境,并下载好Django。。

但是pip高版本不支持。不值得改来改去的。

前面我也提到了版本的问题。直接dos命令行创建虚拟环境后,打开使用高版本就好了。。

在terminal中输入如下命令。创建一个my_blog项目。

django-admin.py startproject my_blog .

使用Django搭建web服务器的例子(最最正确的方式)

这个命令 末尾的句点 让新项目使用合适的目录结构,这样开发完成后可轻松地将应用程序部署到服务器。

注意 千万别忘了这个句点,否则部署应用程序时将遭遇一些配置问题。如果忘记了这个句点,就将创建的文件和文件夹删除(ll_env除外),再重新运行这个命令。

创建完成后的目录结构就如截图看到一样,多了一个my_blog文件夹。。

接下来创建数据库

python manage.py migrate

为什么是Python命令不是Python3命令???

因为你就在Python3的虚拟环境中做各种操作。时刻记住做各种操作都是在环境激活的状态下。。

运行命令后,工程目录下就会多了一个 db.sqlite3 文件

使用Django搭建web服务器的例子(最最正确的方式)

在使用SQLite的新项目中首次执行这个命令时,Django将新建一个数据库 db.sqlite3 首次执行命令migrate时,将让Django确保数据库与项目的当前状态匹配。

启动服务器

python manage.py runserver

现在打开浏览器,并输入URL:http://localhost:8000/ 或者 http://127.0.0.1:8000/

使用Django搭建web服务器的例子(最最正确的方式)

这个页面是Django创建的,若要关闭这个服务器,按Ctrl + C即可。

注意 如果出现错误消息“That port is already in use”(指定端口已被占用),

请执行命令python manage.py runserver 8001,让Diango使用另一个端口;

如果这个端口也不可用,请不断执行上述命令,并逐渐增大其中的端口号,直到找到可用的端口。

以上这篇使用Django搭建web服务器的例子(最最正确的方式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多进程和多线程究竟谁更快(详解)
May 29 Python
Python对象属性自动更新操作示例
Jun 15 Python
python实现录音小程序
Oct 26 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
Python3简单实现串口通信的方法
Jun 12 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
Python操作注册表详细步骤介绍
Feb 05 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 Python
Python使用Web框架Flask开发项目
Jun 01 Python
Python处理session的方法整理
Aug 29 #Python
django自带调试服务器的使用详解
Aug 29 #Python
Python中的相关分析correlation analysis的实现
Aug 29 #Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 #Python
python 计算两个列表的相关系数的实现
Aug 29 #Python
python同步windows和linux文件
Aug 29 #Python
python中几种自动微分库解析
Aug 29 #Python
You might like
php while循环得到循环次数
2013/10/26 PHP
php引用传值实例详解学习
2013/11/06 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
jQuery实现本地存储
2020/12/22 jQuery
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
Python hashlib模块实例使用详解
2019/12/24 Python
如何基于线程池提升request模块效率
2020/04/18 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
合作协议书怎么写
2014/04/18 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js