简介:许多朋友询问了如何将代码保存在Django项目上。首席执行官在本文中注明将为您提供一个详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!
环境:
Python3.6
Centos 7
django1.11
用Django编写一个小网站,只能在您自己的位置运行!该怎么办?我听说它可以在云服务器上部署,以便其他人可以访问它!
它从哪里开始?从django!旧规则开始,请按照以下步骤操作:
请勿在此处谈论Django项目的实施。假设您已经写了一个Django项目,并且可以以127.0.0.0.1:8000局部奔跑,请给您参考,该项目可能会像这样增长:
也就是说,项目目录中的settings.py文件主要强调几个地方:
①关闭调试模式:
②修改允许的host:
③配置静态文件存储路径:
修改配置后,执行:
关于这一点,无话可说。
最好在安装UWSGI和验证方法后进行验证:
创建一个test.py文件:
启动UWSGI服务器:
如果您可以正常启动而无需报告,那应该没有问题。如果您不用担心,则可以在终端进行验证:
以下配置在uwsgi.ini中执行:
找到NGINX配置文件夹,CentOS7的NGINX配置文件在/etc/nginx下。此路径下有一个nginx.conf总配置文件,两个文件夹https://www.shouxicto.com/article/conf.d,https://wwwww.shouxicto.com/article/article/default.d,我们复制复制nginx.conf到conf.d文件夹,并将其命名为nginx.conf(或project name.conf),如下所示(根据中文注释相应的配置):
输入uwsgi.ini文件夹以执行:
在终端执行:
参考资料:
刘江的博客
博客花园
问答;
匿名博客
Django教程
Django文档
empty_xl博客
这需要用于模板。使用安全过滤器作为单独的变量来关闭自动过渡。
模板文件test.html内容键代码:{{数据|安全的}}
以下是视图文件的关键代码
htmlstr =“ img src = https://www.shouxicto.com/stative/images/tree_line.gif/” #save html string
返回render_to_response('test.html',{data:htmlstr} #back to渲染模板显示
就是这样。
Django代码注释
1.扩展并包含在模板标签中是冲突。随着扩展,包含无法生效。原因是基础渲染的独立机制的设计。
2.#编码:UTF-8此句子只能在代码文件的第一行中生效,并且在注释字符串后面可能无效。
3.发布请求休息和Django的本机技术设施层由前端开发简化和交易包装前进。结果是可以将业务层放置在视图中。
4.用户的自我生成的文本内容页面上有一个用户。最好不要将帖子表格放在XSRF上。前者可能会窃取后者的令牌信息。
5.在模板==中,逻辑操作符号的两侧必须有一个空间,否则会影响模板分析
6.以表单的内部逻辑中的clean_data处理中抛出的异常。IS_VALID不会向外传递,但仅会变成form.is_valid()返回false。
7. Django的业务层和视图层如何划分问题,一种简单的方法是将业务层发送到哪个参数级别,我个人认为验证的表单更合适。
8.如果否则:1是直接处理它的两种简化的多级技术:12是中途回报的直接回报。尽管这不符合流程编程功能设计原理,但代码相对简单。
9. Ubuntu的生产环境不能以中文为单数,否则会导致错误。
10.由于Django的500个机制和交易机制,Django视图层与异常处理代码相对较弱。
11.模型表格定义:没有出现在首页上的字段,请确保掉落或null,但null会影响默认值,因此最好的方法是掉落。否则,由于表单中的字段似乎并未覆盖默认值为null。比排除更方便的定义方法是定义字段元信息,因此模型添加了未使用的字段,您无需运行到RE- 填写表单定义
12.数据库 - 内存数据的格式显示在模板中显示带有诸如日期之类的过滤器。如果您直接使用DateTime的横Striftime格式化,它将导致时区数据丢失。时间是值得的。如果您在代码中的Strifttime中处理它,则可以首先使用django.utils.timezone.localtime方法。
13. Django调试中的一个问题:众所周知,RunServer启动,更改代码,服务将重新启动,但是更改自定义标签代码,服务不会重新启动。
14.表单验证的错误中没有文本信息。看文档前一段时间,我发现新版本加强了错误。在较旧版本中,我编写了一个函数来分析错误对象的反馈文本信息。
15.通过Manytomany字段无法添加或删除。为了进行可伸缩性,建议默认情况下添加。您可以将date_added字段添加到中间关系表中。顺便说一句,唯一_todecter受到限制,但是通过使用是有缺陷的:写作操作有点麻烦。应首先删除这个Manytomany字段,然后迁移生效,然后添加一个Manytomany字段。当然,背景是在背景中。
几天前,老师要求我将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。
1.确定用户模型
我们建议它确定Django项目中使用的用户模型:
#使用默认用户模型时
来自django.contrib.auth import get_user_model
get_user_model()
#使用自定义用户模型时
来自django.contrib.auth import get_user_model
get_user_model()
2.使用设置.auth_user_model
由于Django 1.5,用户可以自定义用户模型。如果外部密钥需要使用用户模型,则正式推荐的方法如下:
在设置中设置auth_user_model:
#settings.py
#格式为“。”。
auth_user_model =“ myapp.newuser”
在型号中使用
#models.py
来自django.conf导入设置
来自django.db导入模型
班级文章(Models.Model):
作者= models.foreignkey(settings.auth_user_model)
title = models.charfield(max_length = 255)
应该注意的是,在外键中不使用get_user_model()。
3.自定义用户模型
方法1:扩展抽象使用者类
如果您对Django随附的用户模型同样满意,并且需要其他字段,则可以扩展Abstractuser类:
#myApp/models.py
来自django.contrib.auth.models import Abstractuser
来自django.db导入模型
班级新闻器(摘要使用者):
new_field = models.charfield(max_length = 100)
不要忘记在设置中设置:py:
auth_user_model =“ myapp.newuser”
方法2:扩展Abstractbaseuser类
AbstractBaseuser仅包含3个字段:密码,last_login和is_Active。如果您对Django用户模型的默认first_name(last_name)不满意,或者如果要保留默认的密码存储方法,则可以选择此方法。
方法3:使用OneToOneField
如果您想构建第三方模块并将其发布在PYPI上,则该模块需要根据用户存储每个用户的其他信息。或者我们的Django项目希望不同的用户具有不同的字段,并且有些用户需要不同的字段组合。我们使用方法1或方法2:
#profiles/models.py
来自django.conf导入设置
来自django.db导入模型
从口味。模型进口风味
Easterprofile类(Models.Model):
user = models.onetoonefield(settings.auth_user_model)
FAREE_ICE_CREAM =模型。外国钥匙(味道,null = true,空白= true)
类ScooperProfile(Models.Model):
user = models.onetoonefield(settings.auth_user_model)
scoops_scooped = model.intergerfield(默认= 0)
类InventorProfile(Models.Model):
user = models.onetoonefield(settings.auth_user_model)
flavors_invented =型号。
使用上述方法,我们可以使用user.easterprofile.favorite_ice_cream来获得相应的推动力。
使用此方法的缺点可能会增加代码的复杂性。
结论:以上是首席CTO注释如何汇编Django Project在线代码的所有内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关如何将代码保存在Django项目上的更多信息,请不要忘记在此网站上找到它。