当前位置: 首页 > 网络应用技术

Django只能进行背部 - 端部部署(2023年最新的完成)

时间:2023-03-06 13:15:55 网络应用技术

  简介:许多朋友询问Django如何仅如何部署后端。本文的首席CTO笔记开始为您的参考做出详细的答案。我希望这对每个人都会有所帮助!让我们一起看看!

  安装软件

  安装Python 2.7,Pycharm,PIP(Python软件包管理工具),Django(pip install django)

  部署

  Pycharm新Django项目

  完成后,目录如下:

  sub -directory medjangoproject指示该项目的全局配置,即setttings.py,urls.py和wsgi.py.其中,setttings.py包括系统数据库配置,应用程序配置和其他配置,以及urls.py是

  指示Web工程URL映射的配置。

  子目录学生是在项目下创建的一个应用程序,包括models.py,tests.py,views.py和其他文件

  模板目录是模板文件的目录

  Manage.py是Django提供的管理工具。

  启动

  创建完成后,可以正常启动。单击运行按钮以开始时机错误:

  Trackback(最近的最新电话):

  文件“ d:/workspace/mydjangoproject/manage.py”,第10行,在模块中

  execute_from_command_line(sys.argv)

  文件“ d:python27libsite-packagesdjangocooranagements__init__。py”,第338行,在execute_from_commman_line中

  utility.execute()

  文件“ d:python27libsite-packagesdjangocoranagements __init __. py”,第312行,在执行中

  django.setup()

  文件“ d:python27libsite-packagesdjango__init __. py”,第18行,在设置中

  apps.populate(settings.installed_apps)

  文件“ d:python27libsite-packagesdjangoapps egistry.py”,第89行,人口

  “重复:%s”%app_config.label)

  django.core.exceptions.improperlyconfigured:应用程序标签不是唯一的,重复:admin

  它应该是配置冲突,打开settings.py文件,并发现重复管理员配置

  instasted_apps =((

  'django.contrib.admin',

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  'django.contrib.admin',

  '学生',

  治愈

  评论丢失后(为什么有这个问题,估计它是一个错误),重新启动,确定

  Web项目添加页面

  目前,我们尚未编写一行代码,并且程序正在运行!添加一个Hello World页面。

  打开学生/views.py文件,输入以下内容

  def sayhello(请求):

  S ='Hello World!'

  current_time = dateTime.dateTime.now()

  html ='htmlhead/headbody1%s/h1p%s/p/p/p/html'%(s,current_time)

  返回httpresponse(HTML)

  打开url.py文件,您需要配置URL映射:

  url(r'^student/',sayhello)

  当用户输入http:// **/站立时,调用了Sayhello方法。此方法通过httpresponse()返回页面内容作为响应。

  重新启动服务,访问

  在views.py页面上,该页面所需的元素需要调用httpresponse()类作为对浏览器的响应。相对较大。如果我们需要显示一些动态数据并且页面基本不更改,该怎么办?

  例如,当用户面试时,我们想动态显示一些学生的数据。您可以做到这一点:

  首先,在模板目录中,创建一个新的sut剂节.html文件。该文件用作模板。内容如下:

  呢Doctype HTML

  html

  头

  标题/标题

  /头

  身体

  Ul

  {学生中的学生%}

  李

  id:{student.id}},名称:{{student.name}},年龄:{{student.age}}

  /li

  {%endfor%}

  /ul

  /身体

  /html

  修改views.py文件,添加方法showstuders()

  Def ShowStudents(请求):

  list = [{id:1,'name':'jack'},{id:2,'name':'rose'}]

  返回render_to_response('Student.html',{'sustemans':list})

  该方法将列表用作动态数据,并将其绑定在render_to_response方法上与模板页面sutper.html。

  添加URL映射,URL(R'^ShowStudents/$',ShowStudents)

  修改设置.py模板配置:'dirs':[base_dir+r'emplates'],

  重新启动服务,访问,出现:

  在这一点上,我们通常可以将一些“动态”数据绑定到模板。但是如何访问数据库?

  从数据库中获取所需的数据,在页面上显示它?

  首先,您需要安装数据库驱动程序,即mysql_python,

  然后配置数据库连接:

  数据库= {

  '默认': {

  '引擎':'django.db.backends.mysql',

  “名字”:“学生”,

  “用户”:“根”,

  '密码':'1234',

  “主机”:'127.0.0.1',

  '端口':'3306',

  #'name':os.path.join(base_dir,'db.sqlite3'),

  }

  }

  配置完成后,您需要检测数据库配置是否正确。使用Manage.py Shell命令输入Shell Interactive接口:

  进入:

  来自django.db导入连接

  光标= Connection.Cursor()

  如果您不报告错误,则配置是正确的。

  创建一个模型,打开Models.py,然后定义模型如下:

  班级学生(型号。模型)

  id = models.bigintegerfield

  name = models.charfield(max_length = 20,默认值='a')

  然后致电manage.py syncdb

  在正常情况下,完成此步骤后,模型将与数据库一致。但是,在测试中,在成功执行命令后,发现未建立数据库。

  对于这种情况,请执行以下操作是正常的:

  (1)评论型号。文件代码,执行管理。

  [并管理。

  (2)打开注释并执行[manage.py makemurations Student and] manage.py迁移命令

  通过以上两个步骤,可以正常操作

  如何添加views.py:showrealstudents

  DEF SHOWREALSTUDENTS(请求):

  list = student.objects.all()

  返回render_to_response('Student.html',{'sustemans':list})

  urls.py添加映射URL(r'^showrealstudents/$',showrealstudents)

  重新启动服务并打开连接:

  页面输出是正常的。

  此时,使用Django可以正常操作数据库,自定义模板并在页面上显示数据。

  服务器

  由于Django配备了轻型服务器,因此默认使用服务器,但在实际生产中不允许这样做。在生产环境中,Apache HTTPD服务器与MOD_WSGI.SO相结合,作为后端服务器。

  以下部署环境是:Python2.7.6

  1.安装HTTPD-2.2.25-WIN32-X86-NO_SSL.MSI

  2.将下载的mod_wsgi.so放置在D:Program filesapache软件Foundationapache2.2Modules模块。

  3.在新建的Web项目中

  内容如下(需要修改相应的目录):

  导入操作系统

  导入系统

  djangopath =“ d:/python27/lib/site-ackages/django/bin”

  如果djangopath不在sys.path中:

  sys.path.append(djangopath)

  ProjectPath ='d:/workspace/mydjangoproject'

  如果项目路径不在sys.path中:

  sys.path.append(Project Path)

  apppath ='d:/workspace/mydjangoproject/mydjangoproject'

  如果AppPath不在sys.path中:

  sys.path.append(apppath)

  os.environ ['django_settings_module'] ='mydjangoproject.settings''

  来自django.core.wsgi import_wsgi_application

  应用程序= get_wsgi_application()

  4.修改httpd.conf,添加如下:

  loadModule wsgi_module模块/mod_wsgi.so

  wsgiscriptalias/“ d:/workspace/mydjangoproject/django.wsgi”

  目录“ d:/workspace/mydjangoproject/“”

  选项跟随Symlinks

  Allowoverride无

  命令拒绝,允许

  从所有人那里允许

  /目录

  好的,重新启动服务器,页面是正常的。

  在部署过程中,遇到一个例外,如下:

  在应用程序注册表准备之前,在应用程序注册表之前初始化翻译插管

  原因是django.wsgi从旧写作开始,可以写入新版本。

  几天前,老师要求我将Django Project(爬行动物网页)放在校园的内网上,但我想先用自己的服务器尝试一下。我刚刚在数字海洋上购买了一台服务器以运行SS脚本。通常,服务器始终没有用,因此请进行测试。

  第一步并没有太多胡说八道,将Django文件通过WINSCP软件传递给服务器。

  在服务器中安装Django所需的环境和我需要的第三方库。

  完成上述步骤完成后,有必要执行一个步骤操作,这是我体验的一个坑。在Django文件目录中打开settings.py,然后将允许的_hosts = []更改为werse_hosts = [**“*”]。

  打开“ anage.py位于服务器中”的目录,然后输入命令:

  python3 manage.py runserver 0.0.0.0:8000

  然后按Enter并输入浏览器:服务器IP地址:8000,伟大的成就!

  注意力:

  1. Python3不是特定的,它是根据您的Django项目所需的环境指定的。

  2. 8000是可以修改的端口号。

  如果您希望Django项目在关闭终端后运行和运行,则需要运行以下命令,NOHUP命令,命令casted Python3 Manage.py Runserver 0.0.0.0.0.0:8000。

  后端使用的DRF是UWSGI+NGINX

  输入服务器项目文件目录,我的django项目放置在“/usr/myprojects/” directory.create uwsgi.ini文件中的uwsgi.ini文件中。

  测试效果命令:

  如果您访问:xxx.xxx.xxx.xx:8000成功,那么uwsgi.ini配置成功

  我的nginx.conf位置是“ /etc/nginx/nginx.conf”

  配置文件如下:

  1.第一行

  主要是给予NGINX加权。部署历史记录路线后,将删除地址背后的“#”号码。包装部署后,将会有一个错误。

  2.如果显示配置,则有两个服务器部署了前端服务和后端服务。值得注意的是,两台服务器使用同一服务器,这与侦听不同。

  3. VUE部署需要注意反向代理地址:

  和随后的端口问题

  4.后端服务器需要注意该位置的UWSGI_Pass后面的最终口号。

  5.交叉 - 域问题。如果我需要在自己的在线上找到配置,我没有遇到它,因为我在Django的设置中配置了交叉域。

  6. Django Suit背景管理样式已经崩溃,需要更改,但是可以正常访问API。

  7.我开始在后台收听端口8008,并在前端监视端口80中听,以便前端显示出良好的外观。尽管可以正常访问背景API,但VUE的本地开发环境也可以正常运行,并且文本和图片资源都正常显示。结果,它无法显示。对于地图,我选择了前面- 末端监视器以收听端口8008,后端监视80,并且显示后显示正常。原因尚不清楚////////// erly谈论它。

  8.不要问我为什么我将前端和后端分开并在服务器上部署?糟糕,只是测试,这不是必需的

  9.本文仅适合入门

  关于Django的后台管理员(西装)修改(参考:Django中文网站:)

  在环境中输入项目目录,您需要收集CSS样式并在终端中输入命令:

  接下来,您可以找到静态文件包含CSS文件。此时,该网站已打开,样式显示正常

  UWSGI启动xxx.ini后,将在同一目录中生成xxx.pid文件。UWSGI主要过程的过程数中只有一行内容。

  关于UWSGI,输入同一目录

  课

  如果您无法获得环境,请指定环境

  另外:请记住重新启动UWSGI并重新启动NGINX。

  暴力删除:Fuser -K 80/TCP

  Netstat -aptn命令行,检查所有开放端口号码

  netstat -tlp |GREP 80查看是否使用了特定端口

  PS -EF |grep uwsgi查看是否存在UWSGI端口

  结论:以上是首席CTO的全部内容,指出了Django仅如何进行背部端部署。感谢您阅读本网站的内容。我希望这对您有帮助。有关django如何仅进行背部 - 端如何部署后端部署的更多信息,请不要忘记在此站点上找到它。