指南:本文的首席执行官注释将介绍有关Django如何进入Shell模式的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
安装软件
安装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从旧写作开始,可以写入新版本。
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管理员背景管理界面的出色特征,对于管理人员而言,它很方便地添加和删除网站的内容。
新项目系统已为我们设置了背景管理功能。请参阅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.首先打开终端:CTRL+ART+T快捷方式可以打开;
2.输入目录:CD命令;
3.编辑:vi或vim
示例:/home/root目录中有一个test.txt文件,您需要对其进行编辑
1.打开终端
2.CD /HOME /
3.vi test.txt
到
首先,Ubuntu随附Python并安装Django。这是使用nginxuwsgi的安装配置
Linux可以通过VI或VIM命令进入Shell编程模式。操作步骤如下:
1.首先在Linux终端中创建一个Shell脚本文件,例如Shell.SH:
2.使用vi shell.sh命令输入文件编辑模式作为外壳编程模式,如图所示:
3.输入编辑模式后,输入#!/bin/bash Echo“ Hello World!”输入文本文件后,如下所示:
4.输入完成后:WQ保存内容并返回终端。
5.在终端中输入sh shell.sh以执行脚本。
结论:以上是主要CTO的全部内容,请注意Django如何进入壳模式。感谢您阅读本网站的内容。我希望这对您有帮助。有关django如何进入Shell模式相关内容的更多信息,请在此站点上找到它。