[每周一更]-(第53期):Python3和Django环境安装并搭建Django

在这里插入图片描述

Python和Django 的安装

Python和Django 兼容情况

django 1.11.x

python 2.7 3.4 3.5 3.6 LTS

python

目前在用版本

  • Python 3.6.5 2018-03-28 更新
  • Python 2.7.15 2018-05-01 更新
  • Python 2.7.5 2013-05-12 更新

python和python3安装pip

同时安装上 python2.7.18、python3.11.0 ,将python3.11.0改为python3,运行如下命令得到对应的pip版本

  • pip --version
  • pip3 --version
 python -m pip install --upgrade pippython3 -m pip install --upgrade pip

python2.7 安装pip

  • 安装setuptools
    python setup.py install
https://files.pythonhosted.org/packages/37/1b/b25507861991beeade31473868463dad0e58b1978c209de27384ae541b0b/setuptools-40.6.3.zip
  • 安装pip
https://pypi.python.org/pypi/pip

python setup.py install

window下载

wget https://www.python.org/downloads/release/python-365

推荐直接安装方式安装 https://www.python.org/downloads/windows/

windows中 pip下载

https://pypi.python.org/pypi/pip#downloads 
在 pip中文件夹中 使用 python setup.py install报错:
ModuleNotFoundError: No module named 'setuptools'缺少组件,setuptools   http://pypi.python.org/pypi/setuptools。报错:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.需要安装  openssl-devel组件  ,yum install openssl-devel
centos中下载源码安装
  1. wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

解压: tar -xzvf Python-3.6.5.tgz

  1. ./configure --prefix=/usr/local/python365 --with-ssl

(这个文件夹python36需要自行创建,格式自定义,这里为了区分小的版本号执行configure文件,此文件有两个功能:1、让用户选定编译特性;2、检查编译环境。configure执行后将生成MakeFile文件。)

  1. make(编译程序)
  1. make install(编译安装)

5.安装完成,常见python36的链接

ln -s /usr/local/python36/bin/python3 /usr/bin/python3

6.下载pip (pip install --upgrade pip 更新自己)

最新pip版本
https://files.pythonhosted.org/packages/73/8e/7774190ac616c69194688ffce7c1b2a097749792fea42e390e7ddfdef8bc/pip-20.2.2.tar.gz

wget --no-check-certificate https://github.com/pypa/pip/archive/10.0.1.tar.gz

7.安装pip

python3 setup.py install

8.创建链接

ln -s /usr/local/python36/bin/pip /usr/bin/pip3

9.升级pip

python3 -m pip install --upgrade pip

pip install --upgrade pip

安装mysql扩展

pip3 install pymysql

错误汇总

1.zipimport.ZipImportError: can’t decompress data; zlib not available 安装pip的时候报错.

缺少zlib 的相关工具包导致
yum -y install zlib*

5.修改PATH环境变量,以能够识别此程序的二进制文件路径;
修改/etc/profile文件,在文件中 添加
export PATH=$PATH:/path/to/somewhere#记得是可执行文件所在的目录,路径中不要包含可执行文件。
然后执行
source /etc/profile #是我们的修改生效
查看版本

python -V
pip -V

django

django 1.0版本中最后一个版本 Until at least April 2020

基于python3安装的pip3安装django

pip3 install Django==1.11.14

查看版本


import django
django.VERSION

创建第一个django项目

使用 django-admin.py 来创建 HelloWorld 项目:
django-admin.py startproject HelloWorld

最新版的 Django 请使用 django-admin 命令:

django-admin startproject HelloWorld
创建完成后我们可以查看下项目的目录结构:
cd HelloWorld/
.
|-- HelloWorld
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

python3 manage.py runserver 0.0.0.0:8000访问成功如下:It worked!
Congratulations on your first Django-powered page.
Next, start your first app by running python manage.py startapp [app_label].You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!如果报错:
DisallowedHost at / Invalid HTTP_HOST header: 
于是就去django-admin.py startproject project-name创建的项目中去修改 setting.py 文件: 
ALLOWED_HOSTS = ['*']  #在这里请求的host添加了*启动django后,不能访问,报400错误。
原因:没有开启允许访问
处理:编辑HelloWorld目录下setting.py ,把其中的
ALLOWED_HOSTS=[]改成ALLOWED_HOSTS=['*'] ##* 表示任意地址。设置完还报错的话,有一个原因需要将端口加入到安全组.
将django默认是的sqlite3 数据库改为mysql
    'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}改为'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django','USER':'root','PASSWORD':'hmxMENG224','HOST':'127.0.0.1','PORT':'3306',}然后在项目的__init__.py文件下输入import pymysqlpymysql.install_as_MySQLdb()CREATE DATABASE 数据库名;CREATE TABLE `f_user` (`uid` bigint(11) NOT NULL AUTO_INCREMENT,`appid` char(15) DEFAULT NULL COMMENT '该用户所属机构',`phone` varchar(11) NOT NULL COMMENT '用户登录手机号',`uname` varchar(20) DEFAULT NULL,`passwd` varchar(50) NOT NULL COMMENT '登录密码',`create_time` int(11) NOT NULL COMMENT '账号创建时间',`update_time` int(11) NOT NULL COMMENT '账号创建时间',`isused` tinyint(4) DEFAULT '1' COMMENT '1为有效,0为无效(已删除)',PRIMARY KEY (`uid`),KEY `appid` (`appid`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
视图和 URL 配置

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:

from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world ! ")

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

from django.conf.urls import urlfrom . import viewurlpatterns = [url(r'^$', view.hello),
]

也可以改一种访问方式

from django.conf.urls import urlfrom . import viewurlpatterns = [url(r'^hello$', view.hello),
]

注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

url() 函数

Django url() 可以接收四个参数,分别是两个必选参数:regex、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。

  • regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用 GPT 去分析Excel数据

背景 需要尝试分析 Excel 的内容,每月都需要进行相关的分析,固定化流程,因此尝试制作固化的脚本,方便后续的分析。 执行步骤 帮我写一段 python 代码,我需要区分一个.xlsx的数据。格式示例如下: ”这块自…

mysql创建数据库和表

要在MySQL中创建数据库和表,可以按照以下步骤进行操作: 连接到MySQL服务器: mysql -u username -p其中,username 是你的MySQL用户名。执行上述命令后,系统会提示你输入密码,输入密码后即可登录到MySQL服务…

c语言结构体学习上篇

文章目录 前言一、结构体的声明1,什么叫结构体?2,结构体的类型3,结构体变量的创建和初始化4,结构体的类型5,结构体的初始化 二、结构体的访问1,结构体成员的点操作符访问2,结构体体成员的指针访问 前言 昨…

用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表) -- 自动生成 --【本人】

一、插件安装 1.1 搜索插件 mybatis 安装 1.2 接受安装 1.3 再次进入,说明安装好了 1.4 与鱼皮不同点 1)mybatis 版本不一致 鱼皮: 本人: 2)鱼皮需重启安装 本人不需要 1.5 【需完成 三、步骤,再来看】 …

AI发展将来对人力市场有什么影响

#AI发展将来对人力市场有什么影响 #合同智能审查、合同要素智能提取、合同版本对比、合同智能起草、文本一致性对比、广告审查、合同范本库 人工智能的发展对人们的日常生活起到至关重要的作用,智能发展也是涉猎众多领域,人工智能技术对于企业法务管理…

Git - 强制替换覆盖 master 分支解决方案

问题描述 在版本迭代中,通常会保持一个主分支 master,及多个 dev 分支,但是因为 dev 分支的开发周期过长,迭代太多而没有及时维护 master ,导致后来发版上线的大部分代码都在 dev 分支上,如果将代码在 mas…

LiveGBS流媒体平台GB/T28181功能-用户管理通道权限管理关联通道支持只看已选只看未选添加用户备注角色

LiveGBS功能用户管理通道权限管理关联通道支持只看已选只看未选添加用户备注角色 1、用户管理2、添加用户3、关联通道3.1、只看已选3.2、只看未选 4、自定义角色5、搭建GB28181视频直播平台 1、用户管理 LiveGBS支持用户管理,添加用户,及配置相关用户权…

promise.prototype.finally重写和兼容火狐低版本浏览器

一、finally()方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。该方法是 ES2018 引入标准的 let promise new Promise() promise .then(result > {}) .catch(error > {}) .finally(() > {})finally方法的回调函数不接受任何参数;finally方法…

element-ui Tree 树形控件 过滤保留子级并获取过滤后的数据

本示例基于vue2 element-ui element-ui 的官网demo是只保留到过滤值一级的&#xff0c;并不会保留其子级 目标 1、Tree 树形控件 保留过滤值的子级 2、在第一次过滤数据的基础上进行第二次过滤 先看效果 Tree 树形控件 保留过滤值的子级 <el-treeclass"filter-t…

直观从零理解 梯度下降(Gradient descent) VS 随机梯度下降 (Stochastic gradient descent) 函数优化

首发于Data Science 单变量微分(Differentiation) 常用基本微分有&#xff1a; 四则运算法则&#xff1a; 链式法则(Chain-rule) 极大值(maxima)与极小值(minima) 向量微分 梯度下降(Gradient descent):几何直觉 学习率&#xff08;Learning Rate&#xff09;的直观理解…

笔记中所得(已删减)

1.交流电的一个周期内电压/电流的平均值都为0 2.电动势:电池将单位正电荷由负极搬到正极所做的功 5.额定能量:电池的额定容量乘以标称电压,以Wh为单位 6.500mAh意义是可以以500mA的电流放电1小时 7.电池容量的单位是mAh 13.实际电流源不能串联 14. 15. 16. 17. 18. 19.电…

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

判断上、下三角矩阵

题目&#xff1a; 给定一个三角矩阵&#xff0c;判断其是否为&#xff1a;上三角矩阵、下三角矩阵。 上三角矩阵指主对角线以下的元素都为0的矩阵&#xff1b; 下三角矩阵指主对角线以上的元素都为0的矩阵&#xff1b; 主对角线为从矩阵的左上角至右下角的连线。 输入矩阵是…

前端八股文(HTML篇)二

目录 1.说一下web worker 2.iframe有哪些优点和缺点 3.label的作用是什么&#xff1f;如何使用&#xff1f; 4.script标签中defer和async的区别 5.Canvas和SVG的区别 6.head标签有什么作用&#xff0c;其中什么标签必不可少&#xff1f; 7.浏览器是如何对HTML5的离线储存…

车规级芯片NCV4275CDT50RKG LDO线性电压调节器 原理、参数及应用

关于车规级芯片&#xff08;Automotive Grade Chip&#xff09;&#xff0c;车规级芯片是专门用于汽车行业的芯片&#xff0c;具有高可靠性、高稳定性和低功耗等特点&#xff0c;以满足汽车电子系统的严格要求。这些芯片通常用于车载电子控制单元&#xff08;ECU&#xff09;和…

用ChatGPT方式编程!GitHub Copilot Chat全面开放使用

全球著名开源分享平台GitHub在官网宣布&#xff0c;经过几个月多轮测试的GitHub Copilot Chat&#xff0c;全面开放使用&#xff0c;一个用ChatGPT方式写代码的时代来啦&#xff01; 据悉&#xff0c;Copilot Chat是基于OpenAI的GPT-4模型&#xff0c;再结合其海量、优质的代码…

cJSON代码解读

1、背景 cJSON用了很久&#xff0c;但是对它一直不太了解。这次向添加对long long类型的支持&#xff0c;一直出问题。因为有以前添加两位小数float的经历&#xff0c;我觉得会很轻松&#xff0c;没想到翻车了。于是有了这边文档&#xff0c;阅读了部分博主对cJSON的解析&…

Linux操作系统基础(5):Linux的常用命令

1. Linux命令的介绍 Linux命令是在命令行上运行的程序或实用程序。命令行可以接受文本行并将其处理为计算机的指令。操作系统上任何图形用户界面&#xff08;GUI&#xff09;都只是命令行程序的抽象。 例如&#xff0c;当您通过单击“X”关闭窗口时&#xff0c;该操作后面会运…

【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】

文章目录 一.【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】1.1 项目主题:豆瓣电影二.代码剖析2.1 项目效果展示2.2 服务端代码剖析2.3 数据分析2.4 数据评分三.寄语四.本案例完整源码下载一.【计算机设计大赛作品】豆瓣…

开源协助平台工程灵活应对多云时代的挑战

平台工程通过标准化控制和灵活性保障了开发实践。但是&#xff0c;随着平台工程的兴起&#xff0c;开源战略又该如何融入其中呢&#xff1f; 虽然平台工程没有一刀切的方法&#xff0c;但越来越明显的是&#xff0c;开源软件和技术对平台工程的成功绝对至关重要——这一点我将在…