使用Django搭建web服务器的例子(最最正确的方式)
作者:hao_qi 发布时间:2021-10-23 12:39:11
今晚在Mac OS中搭建web服务器时遇到一点冲突,逛了几个论坛和网站,都说的太片面。
先列出最正确的搭建步骤:(无论你是任何操作系统,或者任何版本,都没毛病)
① 随便找个位置建一个文件夹(比如:Windows下的D盘)
② 打开终端(Windows下是cmd) cd 进入文件夹位置(简单吧)
③ 创建一个虚拟环境(虚拟环境就是磁盘一个位置,为了后续部署到服务器,这也是必须的并且是最正确的一步)
④ 激活虚拟环境
⑤ 安装Django
⑥ 在Django 中创建一个项目
⑦ 创建数据库
⑧ 使用 runserver 命令启动服务器
请提前安装好 python3.6、pip3 及 pycharm 专业版。
----------------------------------------------------------
每一步都超简单,几分钟就完成了。。不要信那些乱七八糟的讲解。首先他们不是创建的虚拟环境,就是错的。
我看好多人都写踩了几天几夜的坑集成了SQLite,配置Django到path环境变量……一系列错误操作
----------------------------------------------------------
我在工作目录下新建了一个文件夹 qihao_blog
cd进入 qihao_blog 目录后创建一个虚拟环境
python3 -m venv ll_env
这一步创建了一个名为 ll_env 的虚拟环境(随便起了一个名字而已)
运行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
环境处于活动状态时,环境名将包含在括号内。在这种情况下,可以在环境中安装包,并使用已安装的包。
在ll_env虚拟环境中安装的包仅在该环境处于 活动状态 时才可用。
安装Django
创建并激活虚拟环境后,就可安装Django了:
pip install Django
这只是把Django安装在刚才创建的虚拟环境文件夹里。
由于是在虚拟环境中工作,因此在所有的系统中,安装Django的命令都相同:
无需使用python -m pip install package_name 这样较长的命令。更不用配置path环境变量。因为不是系统环境。
别忘了,Django仅在虚拟环境处于活动状态时才可用。
很多人用一条命令验证Django的path环境变量配置的是否正确。
如果不放心你可以试试虚拟环境能不能调用
django-admin help
记住这个时候虚拟环境是激活状态…………(前面有个括号,里面是虚拟环境名字)
接下来在Django 中创建一个项目
这个时候建议使用我们常用的PyCharm,当然也可以继续使用dos命令窗口。
PyCharm中打开刚才新建的qihao_blog文件夹
很多人会疑惑,我为什么不从第一步开始就使用PyCharm直接创建一个Django项目呢???
当然PyCharm会自动创建虚拟环境,并下载好Django。。
但是pip高版本不支持。不值得改来改去的。
前面我也提到了版本的问题。直接dos命令行创建虚拟环境后,打开使用高版本就好了。。
在terminal中输入如下命令。创建一个my_blog项目。
django-admin.py startproject my_blog .
这个命令 末尾的句点 让新项目使用合适的目录结构,这样开发完成后可轻松地将应用程序部署到服务器。
注意 千万别忘了这个句点,否则部署应用程序时将遭遇一些配置问题。如果忘记了这个句点,就将创建的文件和文件夹删除(ll_env除外),再重新运行这个命令。
创建完成后的目录结构就如截图看到一样,多了一个my_blog文件夹。。
接下来创建数据库
python manage.py migrate
为什么是Python命令不是Python3命令???
因为你就在Python3的虚拟环境中做各种操作。时刻记住做各种操作都是在环境激活的状态下。。
运行命令后,工程目录下就会多了一个 db.sqlite3 文件
在使用SQLite的新项目中首次执行这个命令时,Django将新建一个数据库 db.sqlite3 首次执行命令migrate时,将让Django确保数据库与项目的当前状态匹配。
启动服务器
python manage.py runserver
现在打开浏览器,并输入URL:http://localhost:8000/ 或者 http://127.0.0.1:8000/
这个页面是Django创建的,若要关闭这个服务器,按Ctrl + C即可。
注意 如果出现错误消息“That port is already in use”(指定端口已被占用),
请执行命令python manage.py runserver 8001,让Diango使用另一个端口;
如果这个端口也不可用,请不断执行上述命令,并逐渐增大其中的端口号,直到找到可用的端口。
来源:https://blog.csdn.net/gfg156196/article/details/80573261
猜你喜欢
- 我们都知道python的版本不同,在使用的时候就有所区别。鉴于我们推荐小伙伴们选择python3版本,所以这方面的区别了解的不是很多。就拿_
- 什么是 AOPAOP,就是面向切面编程,简单的说,就是动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。我们管切入到指
- 本文讨论python中将某个复杂对象转换为简单对象或数据类型的常用魔术放啊,这些在编程中是十分有用的。1、__str__方法。在讲解本方法前
- 函数原型与参数详解OpenCV提供了cv.Canny()方法,该方法将输入的原始图像转换为边缘图像。该方法的原型为:cv.Canny(ima
- myPhoneBook2.py#!/usr/bin/python# -*- coding: utf-8 -*-import reclass
- Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学
- 实现制作抽奖程序,需要认知到我们可以看到一般抽奖程序界面上是有很多按钮的,比如中奖区域,按键开始区域等等,所以我们先要设置界面,然后把这些按
- 在本教程中,我们将构建一个程序,该程序可以使用流行的计算机视觉库 OpenCV 确定对象的方向(即以度为单位的旋转角度)。最常见的现实世界用
- 基础知识优先使用异常捕获LBYL(look before you leap): 在执行一个可能出错的操作时,先做一些关键的条件判断,仅当满足
- 一、PsutilPython当中的Psutil模块是个跨平台库,它能够轻松获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息
- 前言很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将pyt
- 1.字符串大小写转换string.title() #将字符串中所有单词的首字母以大写形式显示string.upper() #将字符串中所有字
- numpy作为python科学计算的基础模块,支撑起了pandas、matplotlib等使用。其中,ndarray作为numpy的重要
- 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理基本开发环境 Python
- Postman的脚本可以导出多种语言的脚本,方便二次维护开发。Python的requests库,支持python2和python3,用于发送
- 问题描述我正在用Python 3.4.1来构建一个Django项目。 manage.py runserver 引发Uni
- 学习了css一段时间,现在对css的一些技巧进行一次小结.希望能对那些刚学习css的新手们带来帮助.一、关于注释在创建xhtml+CSS网站
- php代码实现读取文件头判断文件类型,支持图片、rar、exe等后缀。案例:<?php $filename = "11.jp
- 引伸阅读解读absolute与relativeposition:relative/absolute无法冲破的等级定位一直是WEB标准应用中的
- (1)int转strings := strconv.Itoa(i)等价于s := strconv.FormatInt(int64(i), 1