简介:今天,首席CTO笔记将与您分享服务器随附的Django。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
Django为我们提供了许多开发说明,并且大多数乏味的操作由Django集成在简单的命令行提示符中。现在打开命令提示
键入django-admin.py startproject之后
新闻命令,致电Django的控制台命令创建一个名为News的新项目,同时,Django还在新的新闻文件夹下生成以下四个不同的文本,以生成不同劳动分区的不同文本。
。
1. __init__.py
文件__init__.py可以向Python编译器指示当前文件夹的内容是Python Project模块。
2. Manage.py
Manage.py是一个Python脚本文件,与Django的命令行工具Django-Admin.py匹配以管理已建立的项目。
3.settings.py
这是Django项目的配置文件。与项目相关的工程模块和数据库的全局配置信息设置为settings.py。
4.urls.py
文件URLS.PY负责配置URL地址映射并管理URL的地址格式。
建立新项目时,如果您迫不及待地想知道新项目的外观,Django准备了一个轻巧的Web服务器,供您在开发过程中的任何时间进行测试和使用。
开发人员只需要在命令提示符下输入项目目录,然后键入命令manage.py
RunServer可以启动Web服务器以测试新建立的项目。如果没有错误启动,您可以看到以下提示消息:逗弄开发
服务器在位置运行
这意味着当前的项目已经可以通过该计算机的8000端口访问。
原因如下:
1.报告代码中的中文注释问题的错误
中文注释被添加到Django Project的.py文件文件中,该文件通常报告错误并且无法运行。-* - 编码:UTF-8 - * - * -
2.在操作过程中中文乱码的错误
(1)首先确保连接数据库的基本设置为UTF-8。
(2)然后确认Django项目中的网页标题设置为UTF-8,并设置为代码的代码头:meta charset =“ utf-8”。
(3)最后,由于我们没有指示Django项目中的编码方法,因此仍然报告了错误,因此根据默认设置而不是普通的UTF-8设置该方法。
(4)因此,该项目需要在执行编码操作的位置,或直接添加在设置中。
3.该项目在Debian系统中配置。
(1)在终端中的操作和安装
(2)重新选择字符编码
(3)。选择所有ZH_的字符编码,可以确认下一步,然后选择中文UTF-8。
(4)在.debian中?/.bashrc的底部添加了导出lc_all = zh_cn.utf-8或直接运行导出。UTF-8。
(5)。最后,重新启动重新启动服务器,检查系统编码,UTF-8中文生效,Locale命令可以直接查看系统编码设置,然后运行Django项目上传中文名称文件。
安装软件
安装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-redis中文文档
Andrey Antukh,niwi@niwi.be 4.7.0
翻译:Rapospectre
1介绍
Django-Redis是基于BSD许可证的。这是一个功能齐全的组件,使Django能够支持REDIS缓存/会话。
1.1为什么要使用django-redis?
因为:
不断更新
局部redis-py URL符号连接字符串
可扩展的客户
可伸缩性解析器
可扩展的序列化器
默认客户所有者/支持
完美测试
它在某些项目的生产环境中被用作缓存和会话
不支持超时设置
对本地的支持进入REDIS客户端/连接池支持
高配置(例如模拟缓存的异常行为)
默认支持UNIX插座
支持Python 2.7、3.4、3.5和3.6
1.2可用的django-redis版本
稳定版本:4.7.0
稳定版本:3.8.4
1.3我应该使用哪个版本
版本编号就像3.6、3.7 ...主要的分销版本将包含与落后性不兼容的内容。升级之前,请阅读升级日志。
版本号就像3.7.0、3.7.1 ...以及其他小更新或错误修复。通常,它将仅包括错误修复。没有功能更新。
1.4依赖性
1.4.1 Django版本支持
django-redis 3.8.x支持Django 1.4、1.5、1.6、1.7(也许会有1.8)
django-redis 4.4.x支持Django 1.6、1.7、1.8、1.9和1.10
1.4.2 REDIS服务器支持
django-redis 3.x.y支持redis服务器2.6.x或更高
django-redis 4.x.y支持redis服务器2.8
结论:以上是首席CTO注释为每个人编译的Django自我培养服务器的所有内容。感谢您花时间阅读此网站。我希望这对您有帮助。有关与Django自己的服务器相关的内容的更多信息。不要忘记在此站点上找到它。