pycharm创建django项目linux部署

大家好,我是烤鸭:
pytho部署web项目比java简单一点,虽然springboot内置了tomcat。
环境:
pycharm专业版python3.6


1.安装python
python下载:
https://www.python.org/downloads/
我使用的3.6版本

 

 

 

2.配置环境变量

path目录设置到python的安装目录

 

 

 

 


3.创建django项目

 

会在你生成目录的env下自动安装所需的环境和库

如下图:

4.说一下主要文件:

 

settings.py 配置文件

urls.py 路由

templates 静态资源

manage.py 主程序

wsgi.py 网关接口

 

5.创建自己的模块

打开终端:

 

python manage.py startapp myapp

 

6.注册模块

 

7.编写路由

在myapp下的view.py里编写index方法

 

 

import datetimefrom django.http import HttpResponse
from django.shortcuts import render# Create your views here.
def index(request):s = 'Hello World!'current_time = datetime.datetime.now()html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)return HttpResponse(html)

 

 

 

 

8.添加映射

在url里配置访问路径,类似java中某个controller的requestMapping

 

9.启动项目

 

上一张访问成功的图:

 

10.返回json数据

按照上面的写法,添加路由和映射

views.py加上方法:

 

import datetime
import jsonfrom django.http import HttpResponse
from django.shortcuts import render# Create your views here.
def index(request):s = 'Hello World!'current_time = datetime.datetime.now()html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)return HttpResponse(html)def indexJson(request):current_time = datetime.datetime.now()resp = {'code': '100', 'message': '成功','data': current_time.strftime('%Y-%m-%d %H:%M:%S')}return HttpResponse(json.dumps(resp), content_type="application/json")

 

 

 

 

 

urls.py增加映射:

 

from django.contrib import admin
from django.urls import pathfrom myapp import viewsurlpatterns = [path('admin/', admin.site.urls),path('index/', views.index),path('indexJson/', views.indexJson),
]

 

 

 

 

 

 

 

这样返回的就是标准的json格式的数据了

 

11.关于花生壳配置映射,但是无法访问

settings.py改

 

ALLOWED_HOSTS = ['*'
]

 

 

这样就允许所有的ip访问

 

 

 

12.数据库配置

 

13.创建数据库实体对象

编写models.py

 

from django.db import modelsclass users(models.Model):# 如果没有models.AutoField,默认会创建一个id的自增列a_id = models.IntegerField()name = models.TextField()create_time = models.DateTimeField()

 

 

 

 

 

views.py

 

def list(request):result_set = models.users.objects.all().values('a_id', 'name', 'create_time')data_list = result_set[:]  # queryset转为listprint(type(list(data_list)))data = list(data_list)resp = {'code': '100', 'message': '查询成功' , "data": data}print(json.dumps(resp, cls=CJsonEncoder))return HttpResponse(json.dumps(resp, cls=CJsonEncoder), content_type="application/json")class CJsonEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, datetime.date):return obj.strftime('%Y-%m-%d')else:return json.JSONEncoder.default(self, obj)

 

 

 

 

另外说一下:

关于返回列表数据,时间无法转json的问题,所以增加了

CJsonEncoder方法

 

14.linux部署

之前一直在找打包的方法,类似java打成jar包,可以直接java -jar

python好像不需要打包,直接把pycharm的打包文件夹复制到linux服务器上。

14.1 安装python

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar Jxvf Python-3.6.4.tar.xz
cd Python-3.6.4
./configure --prefix=/usr/local/python3
make && make install

 

因为我之前安装的版本是python2,现在是python3,但是python -v 还是python2.7

这是推荐一篇:

python2升级到python3
https://jingyan.baidu.com/article/86112f137e502a2736978763.html

上面文章的核心内容:

让系统默认使用Python 3.4.3

这里强调一下,读者在更加本经验操作,不是像白痴一样什么都不懂就操作。。。关于截图中删除/usr/bin/python的操作。请先使用ls -al /usr/bin/python 查看下这个软链接指向的文件。或者先将原来的python软连接重名 mv /usr/bin/python /usr/bin/python2.7.5以便后面好恢复。 上面我们已经将Python 3.4.3安装完成,但是我们进入shell后,查看python版本号: python -V,发现python还是2.7.5版本。升级python之后由于将默认的python指向3.4.3以后,yum不能正常使用,需编辑下yum的配置文件:vi /usr/bin/yum,这里需要先将原来的python软连接重名 mv /usr/bin/python /usr/bin/python2.7.5把文件头部的#!/usr/bin/python改成#!/usr/bin/python2.7.5保存退出即可;我们建立一个新的链接:ln -s /usr/local/bin/python3.4 /usr/bin/python检验python指向是否成功:python -V

14.2 安装项目需要的库

 

升级pip到最新版本:

pip install --upgrade pip

  requests包:

pip install requests

  mysql包和libmysqlclient包:

yum -y install mysql-develyum install libmysqlclient-dev

  centos 7 已经没有 libmysqlclient-dev这个了,可以使用 

pip install mysqlclient

  安装多个pip,指定切换pip的ln软连接

 使用pip安装的时候,不是最新版的pipls -al /usr/bin/pip  查看下这个软链接指向的文件重命名软连接 mv /usr/bin/pip /usr/bin/pip2.7.5ln -s /usr/local/bin/pip3.4 /usr/bin/pip
(/usr/local/bin/pip3.4是指定安装pip的路径)

报错如下:(没报错的跳过)

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfileFile "/usr/libexec/urlgrabber-ext-down", line 28except OSError, e:^
SyntaxError: invalid syntaxFile "/usr/libexec/urlgrabber-ext-down", line 28except OSError, e:^
SyntaxError: invalid syntaxFile "/usr/libexec/urlgrabber-ext-down", line 28except OSError, e:^
SyntaxError: invalid syntax

解决方案:

打开/usr/libexec/urlgrabber-ext-down,修改第一行,同上面百度经验的,

改为#! /usr/bin/python2.7.5
 

报这个错的:

error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory

解决方案:

https://www.cnblogs.com/sixiong/p/5711091.html

安装django:

pip install Django
 This may be because you are using a version of pip that doesn'tunderstand the python_requires classifier. Make sure youhave pip >= 9.0 and setuptools >= 24.2, then try again:$ python -m pip install --upgrade pip setuptools$ python -m pip install djangoThis will install the latest version of Django which works on yourversion of Python. If you can't upgrade your pip (or Python), requestan older version of Django:$ python -m pip install "django<2"

进到项目目录,运行启动命令

$ nohup python manage.py runserver 0.0.0.0:8888 &

 

这时候访问服务器的8888端口就可以访问到了。

 

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

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

相关文章

利用Android Studio快速搭建App

大家好&#xff0c;我是烤鸭: 给大家分享一个简单的用Android Studio快速搭建app 工具&#xff1a;Android Studio 64位 专业版 插件:Datepicker Timepicker okhttp 实现需求&#xff1a;界面上选择时间&#xff0c;发get/post请求到后台&#xff0c;获取选择的时间。1.修改And…

springboot多环境加载yml和logback配置

大家好&#xff0c;我是烤鸭&#xff1a;这是一篇关于springboot多环境加载yml和logback配置文件。环境&#xff1a;开发工具 idea(推荐)/eclipse(对yml支持不好)jdk 1.8springboot 1.5.6.RELEASE 1. yml和logback文件1.1 结构,如图所示&#xff1a;1.2 application.yml (默…

汇编实验二

》实验结论 1.使用Debug将下面的程序写入内存&#xff0c;逐条执行&#xff08;见1-1&#xff09;&#xff0c;根据指令执行后的实际情况填空&#xff08;见1-2&#xff09; p.s. 已经按实验要求将使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H…

springboot中的拦截器interceptor和过滤器filter,多次获取request参数

大家好&#xff0c;我是烤鸭&#xff1a; 这是一篇关于springboot的拦截器(interceptor)和过滤器(Filter)。 先说一下过滤器和拦截器。区别&#xff1a;1. servlet请求&#xff0c;顺序&#xff1a;Filter ——> interceptor。2. Filter的作用是对所有进行过滤&#xff…

利用cookies跳过登陆验证码

前言在爬取某些网页时&#xff0c;登陆界面时经常遇到的一个坎&#xff0c;而现在大多数的网站在登陆时都会要求用户填写验证码。当然&#xff0c;我们可以设计一套机器学习的算法去破解验证码&#xff0c;然而&#xff0c;验证码的形式多种多样&#xff0c;稍微变一下&#xf…

[Swift]八大排序算法(八):基数排序

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/ &#xff09;➤GitHub地址&…

推一波JAVA学习公众号

大家好&#xff0c;我是烤鸭&#xff0c;今天不水了。分享一波java学习公众号。从基础到架构都有&#xff0c;另外说一句&#xff0c;注意身体吧。另外说一句&#xff0c;本文不定时更新。1. JAVA思维导图2. 程序员小灰可爱的小仓鼠3. 码农每日一题4. JAVA后端技…

二叉树的三种遍历(递归与非递归) + 层次遍历

<转载于 >>> > 二叉树是一种非常重要的数据结构&#xff0c;很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式&#xff0c;因为树的本身就是用递归定义的&#xff0c;因此采用递归的方法实现三种遍历&#xff0c;不仅代码简洁…

springboot使用mongodb

大家好&#xff0c;我是烤鸭&#xff1a;这是一篇关于springboot项目中使用mongodb。 环境&#xff1a;jdk 1.8springboot 1.5.6.RELEASEmaven 3.5 1. mongodb在springboot中的配置springboot集成这个三方插件就是简单&#xff0c;只需要引入依赖&#xff0c;在properties或者…

eclipse搜索框太小

解决方式&#xff1a; Window>Preferences>DevStyle>Inline Search 把 use the inline search 取消勾选

fileinput 加 ftp 加 nginx 加 SpringBoot上传文件

亲测可用 准备linux服务器 https://www.cnblogs.com/shuaifing/p/8268949.html 搭建ftp https://www.cnblogs.com/shuaifing/p/8260532.html Springboot整合fileinput 上传文件https://www.cnblogs.com/shuaifing/p/8274906.html 页面 引入 jquery boostrap fileinput.min.js…

Centos7安装Hadoop教程

一&#xff1a;安装SSH 1&#xff0c;执行下面的命令安装ssh yum install openssh-clients yum install openssh-server 2&#xff0c;执行如下命令测试一下 SSH 是否可用&#xff08;SSH首次登陆提示 yes/no 信息&#xff0c;输入 yes 即可&#xff0c;然后按照提示输入 root…

elasticsearch 6.x (一) 部署 windows入门 spingboot连接

大家好&#xff0c;我是烤鸭&#xff1a;今天分享的是 elasticsearch 6.x 部署 windows服务器。环境&#xff1a;win10elasticsearch-6.2.4springboot 2.0.0.RELEASE1. 官网下载elasticsearch这个是最新版本的es下载地址。https://www.elastic.co/downloads/elasticsearch选择z…

Programming Assignment 5: Burrows–Wheeler Data Compression

Programming Assignment 5: Burrows–Wheeler Data Compression 1. 题目阅读 实现Burrows-Wheeler数据压缩算法。这个革命性的算法产生了gzip和pkzip&#xff0c;并且相对容易实现&#xff0c;还不受任何专利保护。它构成了unix压缩实用程序bzip2的基础。 这个算法由以下三种算…

elasticsearch 6.x (二) linux部署 kibana x-pack 安装

大家好&#xff0c;我是烤鸭&#xff1a; 环境&#xff1a;linux Cent OS 7.3elasticsearch-6.2.4 1. 下载elasticsearch https://www.elastic.co/downloads/elasticsearch 上面的网址直接下载的话&#xff0c;实在太慢了。官方还提供了另一种方式。 https://www.elastic.co…

Kali Linux ——在无网络情况下安装无线网卡驱动

1、背景&#xff1a; 今日刚刚开始学习kali linux&#xff0c;众所周知&#xff0c;安装完成后&#xff0c;系统是没有无线网卡驱动的&#xff0c;这就对学生党造成相当的困扰&#xff1a;校园网要连接有线是需要认证客户端的&#xff0c;而认证客户端只有windows端&#xff0c…

HADOOP_HOME and hadoop.home.dir are unset 报错处理

一般是windows才会出现这个问题 请看下面的解决方案&#xff1a; 第一步&#xff1a;下载winutils-master.zip Gitee地址&#xff1a;https://gitee.com/nkuhyx/winutils.git 蓝奏云&#xff1a;https://www.lanzoux.com/i55ccnc Github地址&#xff1a;https://github.com/cda…

elasticsearch 6.x (三) linux 集群多节点部署

大家好&#xff0c;我是烤鸭&#xff1a;关于集群内单个节点部署&#xff0c;请参考上一篇文章。elasticsearch 6.x linux部署(二) kibana x-pack 安装环境&#xff1a;linux Cent OS 7.3elasticsearch-6.2.41. 下载多个es安装每个安装步骤都是一样的。2. 修改配置文件(重…

springboot-devtools idea或eclipse 热加载

大家好&#xff0c;我是烤鸭&#xff1a;今天分享一下springboot项目的热加载。第二种方式在eclipse和idea中都可以。虽然会有一些小坑。 方式有两种&#xff1a; 1. springloaded(无效) <!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->…

springboot mybatis 热加载mapper.xml文件(最简单)

大家好&#xff0c;我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件。 本来不打算写的&#xff0c;看到网上比较流行的方式都比较麻烦&#xff0c;想着简化一下。 网上流行的版本。 https://www.cnblogs.com/oskyhg/p/8587701.html 总结一下需要&#xff1a;my…