本文的首席主张将介绍Django如何创建应用程序以及如何创建Django项目的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
本文目录清单:
1.如何创建DJANGO网站2.使用Django开发相对简单的帖子接口3. Django可以在创建应用程序之前创建项目4.如何创建Django应用程序5,Django Project多重应用程序项目6,DJANGO NOVICE PLAYESTUTIOL 6,DJANGO Project 6。创建一个新项目。本文演示了如何使用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的自动化测试,持久性,中间件和国际化的知识。
让我首先谈论前排条件
1.首先构建django环境win+r打开命令提示符pip安装django
3.然后创建一个自己的应用程序
同样,在命令提示符的路径上,输入新创建的项目所在的路径,输入python manage.py startapp xxx(这是指您要创建的名称),您可以看到创新的编辑器可以看到
4.正式开始开发邮政请求
首先在seetings.py文件中设置参数以对其进行修改,如图所示
Views.py
最后,在模板文件夹下创建一个HTML文件以简单地写下前端
我直接发布登录。html我在这里写的
代码部分是要完成效果
您也可以输入提琴手检查验证。为了找到更好的选择,我们首先打开提琴手,然后输入用户名密码。
你可以得到这样的包
用户名,密码的值也与我们输入的输入一致
在此处完成简单的帖子请求开发
一个项目包含许多Django应用程序和配置。
从技术上讲,项目的作用是提供配置文件。例如,在哪里定义数据库连接信息,已安装的应用程序列表,template_dirs等。
应用程序是一组Django功能,通常包括模型和视图,这些功能和视图中存在于Python的软件包结构中。
例如,Django本身具有一些内置的应用程序,例如注释系统和自动管理接口。该应用程序的关键点之一是,它们很容易将其移植到其他项目并由多个项目重复使用。
创建一个应用程序
输入“ PythonProject”项目文件下的以下命令,以创建“ NoWamagic”应用程序:
1 python manage.py开始
此命令没有输出任何内容。它仅在pythonproject的目录中创建了一个nowamagic目录。let来看一下此目录的内容:
1 nowamagic/
2 __init__.py
3型
4 tests.py
5 Views.py
该目录包含此应用程序的模型和视图。
使用您喜欢的文本编辑器检查型号的内容。
对于如何构建Django代码,没有快速设置的规则。如果您只构建一个简单的网站,那么您可能只需要一个应用程序即可。但是,如果它是一个复杂的网站,其中包含许多无关的模块,例如电子商务和社区,那么您可能需要将这些模块列入不同的应用程序以便将来重复使用。
是的,您可以在不创建应用程序的情况下创建应用程序。这应该由我们之前编写的视图函数的示例证明。在这些示例中,我们简单地创建一个名为views.py的文件,编写一些函数并在urlconf中设置每个函数的映射。这些情况不需要使用应用程序。
但是,该系统在应用程序上有一个协议:如果您使用Django的数据库层(模型),则必须创建一个Django应用程序。该模型必须存储在应用程序中。因此,要开始构建我们的模型,我们必须创建一个新应用。
如果您想创建一个论坛应用程序,则可以尝试多个社区。简单和实用。
Django可以在一个项目中拥有多个应用程序。例如,大型门户可以包括论坛,新闻和其他内容。每个模块称为一个应用程序,也可以理解为一个独立的小型项目。该网站最终呈现给用户
该测试是Python 2.7
其次,相应的应用模块分别建立:todo,oa,web
如图所示:
在上面的配置中,引入Inclubly以包装配置
同时,介绍了索引函数,并建立了TODO,OA和Web中索引中的视图文件
同时,指定了一个打开的默认主页,即
此时,运行程序,该页面显示在图中
如果此时输入的路径是Localhost:8000/web/inex,
Localhost:8000/OA/INEX,
Localhost:8000/TOTO/索引将由不同的应用显示,
感觉到它将被没有卡片的群众击败,所以让我们开始。
打开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的官方网站上找到了图片
结论:以上是首席CTO的全部内容,请注意Django如何创建应用程序以及如何创建Django项目。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并遵循该书。