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

如何在Django中创建应用程序

时间:2023-03-08 12:40:05 网络应用技术

  简介:许多朋友问有关Django如何创建应用程序的问题。本文的首席执行官注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!

  本文目录清单:

  1.如何创建Django网站2. Django新手教程6,创建一个新项目3.如何使用Django或其他框架快速构建SNS Web应用程序4.如何编写第一个网页(Django)5。要在第一个?django应用程序6中,django在阿里巴巴云上很简单?本文演示了如何使用1.7的Django版本创建一个简单的Django网站。

  1.创建项目

  运行以下命令来创建Django项目。项目名称是MySite:

  $ django- addmin.py startproject mysite

  创建的项目目录如下:

  我的网站

  e- manage.py

  t - 锰矿

  t- __init__.py

  在──设置.py

  s-或urls.py

  。─— wsgi.py

  1个目录,5个文件

  阐明:

  __init__.py:让Python将目录作为开发包所需的文件(即一组模块)。这是一个空文件,通常您不需要修改它。

  Manage.py:命令行工具允许您通过多种方式与Django项目进行交互。类型python manage.py帮助查看它可以做什么。您不需要编辑此文件;在此目录中为方便起见是纯粹的。

  settings.py:Django项目的设置或配置。

  urls.py:项目的URL路由设置。目前,它是空的。

  wsgi.py:wsgi Web应用程序服务器配置文件。有关更多详细信息,请检查如何使用WSGI部署

  接下来,您可以修改settings.py文件,例如:修改Lagansy_code,设置时区time_zone

  SIT_ID = 1

  lanking_code ='zh_cn'

  time_zone ='亚洲/上海'

  use_tz = true

  [时区]()功能在上方打开。您需要安装pytz:

  $ sudo pip安装pytz

  2.操作项目

  在运行项目之前,我们需要创建一个数据库和表结构。我在这里使用的默认数据库:

  $ python manage.py迁移

  执行操作:

  应用所有迁移:管理员,contenttypes,auth,sessions

  运行迁移:

  应用ContentTypes.0001_Initial ...确定

  应用auth.0001_initial ...确定

  应用管理员0001_Initial ...确定

  应用sessions.0001_initial ...好的

  然后开始服务:

  $ python manage.py runserver

  您将看到以下输出:

  执行系统检查...

  系统检查没有问题(0沉默)。

  2015-02 1月28日:08:33

  Django版本1.7.1,用户设置“ mysite.settings”

  启动开发服务器

  使用Control-C退出服务器。

  这将在端口8000启动本地服务器,只能从您的计算机连接和访问。现在服务器正在运行,现在可以访问Web浏览器。它开始工作。

  您还可以指定启动端口:

  $ python manage.py runserver 8080

  并指定的IP:

  $ python manage.py runserver 0.0.0.0:8000

  3.创建一个应用程序

  一个项目是更早创建并成功运营的。现在,要创建一个应用程序,应用程序等同于项目的子模块。

  在项目目录中创建一个应用程序:

  $ python manage.py startapp民意调查

  如果操作成功,您将在MySite文件夹下看到一个称为民意调查的文件夹。目录结构如下:

  民意调查

  t- __init__.py

  .- admin.py

  在移民

  │_ _- __init__.py

  s- models.py

  。—— tests.py

  s - 视图。

  1个目录,6个文件

  4.创建模型

  每个Django模型都从django.db.models.model继承

  模型中每个属性的每个属性代表数据库字段

  通过Django模型API

  在民意调查文件夹下打开Models.py文件。创建两个模型:

  导入日期

  来自django.db导入模型

  来自django.utils重要时区

  班级问题(Models.Model):

  Question_Text = model.Charfield(max_length = 200)

  pub_date = model.dateTimeField('Date已发布')

  def was_publish_recression(seld):

  返回self.pub_date = timezone.now()-dateTime.timedelta(天= 1)

  班级选择(Models.Model):

  问题=模型。Foreignkey(问题)

  choce_text = models.charfield(max_length = 200)

  投票= model.integerfield(默认= 0)

  然后修改inporthed_apps以在mySite/settings.py中添加民意调查:

  instasted_apps =((

  'django.contrib.admin',

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  “民意调查”,

  治愈

  添加新应用程序后,我们需要运行以下命令来告诉Django您的模型以进行更改。迁移数据库需要迁移:

  $ python manage.py makemigrations民意调查

  您将看到以下输出日志:

  “民意调查”的迁移:

  0001_Initial.py:

  - 创建模型选择

  - 创建模型问题

  -DD现场问题选择

  您可以从民意调查/迁移/0001_Initial.py查看迁移语句。

  运行以下语句,您可以查看迁移SQL语句:

  $ python manage.py sqlmigrate民意调查0001

  输出结果:

  开始;

  创建表“ polls_choice”(“ id”整数而不是null主键自动启动,“ choice_text” varchar(200)而不是null,“投票” integer而不是null);

  创建表“ polls_question”(“ id”整数而不是null主键自动启动,“ Question_Text” Varchar(200)不是null,“ pub_date” dateTime null)

  

  插入“ polls_choice__new”(“ phoce_text”,“票”,“ id”)选择“ polls_choice”中的“ choice_text”,“票数”,“投票”,“ id”

  丢弃表“ polls_choice”;

  Alter Table“ Polls_Choice__new”重命名为“ Polls_Choice”;

  在“ Polls_Choice”(“ Question_ID”)上创建索引Polls_choice_7aa0f6ee;

  犯罪;

  您可以运行以下命令以检查数据库是否存在问题:

  $ python manage.py检查

  再次运行以下命令以创建新添加的模型:

  $ python manage.py迁移

  执行操作:

  应用所有迁移:管理员,内容类型,民意调查,auth,会议

  运行迁移:

  应用民意调查。0001_Initial...好的

  总而言之,在修改模型时,您需要执行以下步骤:

  修改型号.py文件

  运行python manage.py makemigrations创建迁移语句

  运行python manage.py迁移并迁移模型更改为数据库

  您可以阅读django-admin.py文档以查看更多管理。

  创建模型后,我们可以通过Django提供的API进行测试。run以下命令输入Python Shell的交互模式:

  $ python manage.py shell

  这是一些测试:

  从polls.models导入问题,选择#导入我们刚刚编写的模型类。

  #系统中还没有问题。

  Question.Objects.all()

  []

  #创建一个新问题。

  #在默认设置文件中启用了对时区的支持,因此

  #Django用tzinfo for pub_date来实现DateTime。使用timezone.now()

  #而不是面团。dateTime.now(),它将做正确的事情。

  来自django.utils重要时区

  Q = Question(Question_text =“什么新功能?”,pub_date = timezone.now())

  #将对象保存到数据库中。您必须明确调用Save()。

  问:Save

  #现在它有一个ID。请注意,这可能会说“ 1”的“ 1”,具体取决于

  #您使用哪个数据库。那不是大事;这只是意味着你

  #数据库后端喜欢返回整数作为Python长整数

  #对象。

  Q.ID

  1

  #通过Python属性访问模型字段值。

  Q.question_text

  “什么是新的?”

  q.pub_date

  dateTime.dateTime(2012,2,26,13,0,0,0,775217,tzinfo = utc)

  #Change值通过更改属性,然后调用Save()。

  q.question_text =“怎么了?”

  问:Save

  #Objects.all()显示数据库中的所有问题。

  Question.Objects.all()

  [问题:问题对象]

  打印所有问题时,输出的结果是[问题:问题对象]。我们可以修改模型类以使其更容易理解。修改模型类:

  来自django.db导入模型

  班级问题(Models.Model):

  #...

  def __str __(self):#__unicode__ python 2

  返回self.question_text

  班级选择(Models.Model):

  #...

  def __str __(self):#__unicode__ python 2

  返回self.choice_text

  继续测试:

  从民意调查。模型导入问题,选择

  #确保我们的__str __()加法工作。

  Question.Objects.all()

  [问题:怎么了?]

  #Django提供了一个富含数据库的查找API,该API完全由

  #关键字参数。

  Question.Objects.Filter(ID = 1)

  [问题:怎么了?]

  Question.Objects.Filter(Question_text_Startswith ='What')

  [问题:怎么了?]

  #获取今年提出的问题。

  来自django.utils重要时区

  curren_year = timezone.now()。年

  Question.Objects.get(pub_date__year = current_year)

  问题:怎么了?

  #请求ID,这将引起例外。

  Question.Objects.get(ID = 2)

  Trackback(最近的最新电话):

  Em

  dotNotexist:不存在问题匹配查询。

  #主键查找是最合并的情况,因此Django提供了一个

  #主要钥匙精确查找的快捷方式。

  #跟随者与Question.objects.get(ID = 1)相同。

  Question.Objects.get(PK = 1)

  问题:怎么了?

  #确保我们的自定义方法有效。

  Q = Question.Objects.get(PK = 1)

  #给出一些选择。创建呼叫构造一个新的

  #选择对象,执行插入语句,将选择添加到集合

  可用选择的#并返回新选择对象。Django创建

  #一套持有外国关系的“另一面”

  #(例如,一个问题的选择)可以通过API访问。

  Q = Question.Objects.get(PK = 1)

  #从相关对象集中显示任何选择 - 到目前为止无。

  q.choice_set.all()

  []

  #创建三个选择。

  Q.CHOICE_SET.CREATE(choce_text ='不多',票数= 0)

  选择:不多

  Q.CHOICE_SET.CREATE(choce_text ='the Sky',投票= 0)

  选择:天空

  c = q.choice_set.create(choce_text ='再次黑客入侵',票数= 0)

  #选择对象可以访问其相关问题对象。

  C.问题

  问题:怎么了?

  #和VICE,反之亦然:问题对象可以访问选择对象。

  q.choice_set.all()

  [选择:不是泥土,选择:天空,选择:再次入侵]

  q.choice_set.count()

  3

  #API自动食品遵循您需要的相关船。

  #使用面团下划线选择相关职位。

  #这是您想要的深层层次的工作。没有限制。

  #找到今年Pub_date的任何问题的所有选择

  #(重用我们上面创建的“ Current_Year”变量)。

  choce.objects.filter(问题__pub_date__year = current_year)

  [选择:不是泥土,选择:天空,选择:再次入侵]

  #让我们删除其中一个选择。为此使用delete()。

  c = q.choice_set.filter(choce_text__startswith ='Just Hacking')

  c.delete()

  以上测试涉及与Django Orm相关的知识。有关详细信息,请参阅Django中的ORM。

  5.管理管理员

  Django具有构建-Django Admin背景管理接口的出色特征,对于管理人员而言,它很方便地添加和删除网站的内容。

  新项目系统已为我们设置了背景管理功能。请参阅mySite/settings.py:

  instasted_apps =((

  'django.contrib.admin',#

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  '我的网站',

  治愈

  同时,添加了进入背景管理的URL。您可以在MySite/urls.py中查看它:

  url(r'^admin/',infulude(admin.site.urls)),#可以使用SET URL进入网站的背景

  接下来,我们需要创建管理用户来登录到管理背景管理接口:

  $ python manage.py createSuperuse

  用户名(留空白以使用“六月”):管理员

  电子邮件地址:

  密码:

  密码(再次):

  超级用户成功创建了。

  总结

  最后,查看项目目录结构:

  我的网站

  Q - db.sqlite3

  e- manage.py

  t - 锰矿

  │_ _- __init__.py

  │e ─—设置.py

  │u - urURLS.PY

  │s-wsgi.py

  S - 民意调查

  │_ _- __init__.py

  │d - 管理

  │i - 移民

  ││├├─-0001_Initial.py

  ││├─..__Init__.py

  │o - models.py

  │e - ─-模板

  民意调查

  ││├├─detail.html

  ││├ - index.html

  thml

  │e - tests.py

  │u - urURLS.PY

  │i - ─视图。

  L ─—模板

  在─管理员

  _ - base_site.htm

  通过上面的介绍,我对Django的安装,操作以及如何创建视图以及如何创建视图和模型有了清晰的了解。接下来,您可以彻底了解Django的自动化测试,持久性,中间件和国际化的知识。

  感觉到它将被没有卡片的群众击败,所以让我们开始。

  打开CMD黑色窗口,我们进入

  workon django_env

  让我们看一下如何在黑色窗口中的每个URL之间穿梭。您首先查看您现在的位置。一般来说,新开放的CMD在

  c:/user/your_name

  在这个位置,我们首先转到D驱动器,根目录是从C到D,我们只需要输入

  D:

  您可以到达D驱动器。如果您的django_env被激活,他将自动跳到

  d:/py_env/django_env

  当然,在此目录中,我们可以在这里构建该项目,但是我们也可以在其他地方构建它。请输入(请注意,CD和两个点之间有一个空间)

  CD ..

  CD意味着要去。两个小点是指父亲,这意味着当前目录的父亲目录。

  所以我们来了

  d:/py_env

  在目录中,再次输入

  CD ..

  所以我们到达

  d://

  这是D驱动器的根目录的重新输入CD。不再效果。如果您逐步遵循我的教程,那么您已经在此根目录上构建了一个名为Django_project的空文件夹。如果您还没有建造,请输入

  mkdir django_project

  创建此文件夹。当然,您还可以在图形接口中打开我的计算机,然后正确地单击新文件夹以达到位置。为了强制网格并更熟悉CMD窗口,我建议您仍然使用命令行。

  我们的CMD路径(准确是工作路径)现在在D驱动器的根目录上

  所以,请输入

  CD django_project

  指示转到django_project。当然,目前您必须确定Django_project是D驱动器根目录下的子目录。

  如果我们还在

  D:py_env/django_env

  然后输入

  CD django_project无效。您必须刚刚逐步到达D驱动器,然后输入django_project.or,您可以直接输入绝对路径

  CD d:/django_project

  使用上述命令,只要您在D驱动器上,无论您是哪个目录,都可以一步就位。

  当我们到达现场时,我们将很快建立我们的项目。

  激动人心的时刻在这里,请输入CMD

  django-admin startproject mysite

  目前,我们创建了一个项目,该项目的名称是MySite等,等等。要说良好的云磁盘不是Mao的MyCloud吗?有必要提及Django的微妙之处。一个新项目等同于计算机上的一块土地(d:/django_project/mysite目录是我们网络服务的站点),Andi尚未开始展览馆。您为什么要直接建造一个新的展览馆而不是土地,因为当我们循环时,我们可以在地面上建立许多展览馆。在Django,云磁盘不足以调用一个。该项目只能称为应用程序(一个展览馆)。只有将许多展览馆放在一起,才可以称为该项目,即一个项目可以包含许多应用程序(应用程序)。对于extplecloud磁盘服务,我们还可以提供个人博客服务。我们还可以为植物开设论坛。无论如何,将来要提供家庭水桶服务。因此,云磁盘只能被视为一个应用程序。当然,目前我们只在地面上建立一个展览馆。

  或在CMD黑色窗口中,请输入

  dir

  使用此指令在当前目录中列出子目录和存储文件,

  我们可以看到,生成一个称为MySite的子目录。实际上,山地上有两个目录,一个目录是一个点,这意味着您,即django_project本身,另一个目录是两个点,表明父亲,这意味着父亲。root目录。因此,我们看到的是Django_project目录的三代人。

  这基本上是均匀的,作为图形界面。下图的左上角的位置代表父目录。至于目录本身,无需故意表达它。

  您使用鼠标单击文件夹,实际上,内部系统是为您运行

  CD您单击了文件夹

  如果您点击返回,请帮助您运行

  CD ..

  回到主题,我们看到了一个MySite子目录,所以进去看看,请输入

  CD Mysite

  然后输入

  dir

  检查情况

  我发现还有另一个Mysite目录,Pit父亲,俄罗斯的孩子是!这是!

  在这一点上,我知道Django是外国人的工具。sub -directory称为与父目录相同的名称(无论如何,第一个级别目录的名称是mysite ii.once,我们不能随便更改它。将来,我们将内部称为“ mysite”。mysite,外部的外部称为区别)。细看。旁边还有一个管理。

  其中有4个PY文件。我看到了,其中之一是URLS.PY,URL的重要性,您需要专门管理文件。如果您对文章的读物有认真的阅读,则在urls.py中,settings.py也很重要。它用于管理MySite项目。因此,我认为最后一个mysite文件夹应该称为mysite_manage,因为它的内部是什么,就像在管理中一样。

  为了使每个人都知道对项目结构有更清晰的了解,我在Django的官方网站上找到了图片

  SNS网站是一个很棒的话题。但是您可以找到Ready -Made -Made,只需将其拉下即可。

  最后一个问题(Web网页个人开发的软件和配置基础)已详细介绍了基于Django+MySQL+Pycharm的Web开发的基础架构开发。本期将遵循作者编写第一个网页。他本人以及与作者同一局域网的其他用户也可以访问。

  首先输入python manage.py startapp myfamilyweb(指示创建自己的网页项),如图1所示。

  生成的myFamilyWeb中目录结构中的含义如下:

  外层的_init_.py文件标识MyFamilyWeb是一个Python软件包。

  Admin.py用于将模型定义注册到管理背景,这是Django Admin应用程序的配置文件。

  apps.py用于应用程序本身的配置。

  迁移目录用于将模型的定义和修改存储在模型文件中。

  迁移/_init_.py文件标识迁移是一个Python软件包。

  Model.py用于定义应用程序中所需的数据表。

  tests.py文件用于编写当前应用程序的单元测试。

  views.py文件用于编写应用程序视图。

  上述介绍是MyFamilyWeb应用程序的所有内容。将来需要做的是填充相应的服务逻辑以提供服务。如果这是开始,您将发现无法如图2所示访问它。

  如果要访问第一个网页(MyFamilyWeb),第一步是设置路由并添加一个函数以访问views.py(图3-图6)。

  配置模板和HTML(图7位数13)

  该配置已编写了第一个和最简单的网页来启动服务器。记录(图14)

  在开发人员的计算机上访问浏览器(图15)

  (配置防火墙端口)(图16)

  设置以允许多个主机访问(图17)

  输入ipconfig到终端

  输入IPv4地址:192.168.0.102(图18)

  python manage.py runserver 0.0.0.0:8000(启动时添加了0.0.0.0.0:8000)。

  然后,本地网络中的其他计算机可以在浏览器中访问您的IP地址(此URL只能由同一局部网络的主机访问)

  之后,我去学习如何编写HTML文件。

  关于Django

  Django是用Python语言编写的开源Web框架,它可以帮助开发人员在概念后的几个小时内启动Web应用程序。它遵循模型视图模板(MVT)构建应用程序,可以降低Web开发和Web开发的复杂性和允许开发人员专注于写作应用程序。它提供了一个设置,用于打开网站地图,内容管理,用户验证,RSS摘要和其他任务的框。有些高流量网站使用DJANGO,因为它可以快速且灵活地进行调整,可以满足它的符合交通波动的需求。

  先决条件

  为Python应用程序安装Virtualenv和Virtualenv包装器,目的是为Python项目创建一个独立的环境。

  1.启动服务器,然后首先将python3用作python来启动默认值。您需要删除默认的Python链接文件并重新建立连接关系。

  RM/usr/bin/python

  ln -s/usr/bin/python3/usr/bin/python

  2。

  apt-get更新#升级软件包

  apt-get安装python3-pip #install pip

  PIP安装 - 润滑pip #upgrade pip

  安装Virtualenv

  sudo pip安装virtualenv

  创建一个目录来存储您的Virtualenv

  mkdir?/.virtualenvs

  安装VirtualenWrapper

  sudo pip安装virtualenvwrapper

  将这两行添加到?/.bashrc的末尾,以加载VirtualenvWrapper命令。

  export workon_home = $ home/.virtualenvs

  源/usr/local/bin/virtualenvwrapper.sh

  退出,然后打开外壳,或使用.bashrc或source?/.bashrc命令重新加载.bashrc,然后一切准备就绪。

  apt-get install lrzsz#可以直接将文件从桌面放置到xshell

  apt-get安装unzip #is用于解压缩ZIP压缩软件包

  创建一个新的虚拟环境

  mkvirtualenv xxxxx

  退出虚拟环境

  停用

  输入虚拟环境

  workon xxxxx

  pip冻结要求。txt#在此环境中的所有依赖关系取决于要求。txt文件

  pip install -r sumpliont.txt #use sumpliont.txt安装

  然后输入您的项目。

  另一点更重要,进入您的阿里巴巴云,然后设置安全组配置

  然后添加安全组规则

  如图所示,您可以在浏览器上访问网站。公共网络IP+8000(端口)

  Django模块实际上很简单。很难开发一个需要前端知识点(CSS,HTML,JavaScript)和背面端(数据库)的网络。

  结论:以上是首席CTO的所有内容都指出Django如何为所有人创建应用程序。感谢您阅读本网站的内容。我希望这对您有帮助。有关Django如何在本网站上创建应用程序信息的更多相关内容。