10道题教你使用python Django框架来实现web应用,值得收藏
off999 2024-10-11 14:04 54 浏览 0 评论
1、django+python27+mysql的生产环境,想换成python3,请问需要哪些注意事项?生产环境数据不想被破坏,所以不敢轻易下手,希望大神指点一下?
关于python升级:
可以使用Python3自带工具2to3,将python2的代码转换为python3。少部分代码仍需手工转换。
升级python版本后,第三方包的版本需要升级。有的第三方包不支持python3。这个时候可以尝试使用2to3工具对第三包的python源代码进行转换,然后使用。这样存在一定风险。无法转换的,需要寻找替代包,应用服务器上对应的代码需要修改。
关于django升级:
django1.5开始支持python3。同时django1.11是支持python2的最后的版本。如果使用的django版本大于等于1.5,则django版本可以不升级。如果django版本低于1.5,则需要升级django版本。升级django版本后,新版本不兼容的老的API都需要修改。这个工作量比较大。
升级django版本后,为django服务的第三方包需要对应升级。建议django不要立即使用最新版本,以免第三方包还不支持最新的django版本。
关于mysql:
mysqldb不支持python3,需要使用mysqlclient做数据库API驱动。
django2.0只支持myslq5.5或者更高版本
一般性的版本升级注意事项。
代码和数据做好备份
python和django升级后,上线前需要充分测试。
2、刚学习django的nginx部署,一直不清楚处理高并发的原理,大神可以解释下么?
我简单说一下我的理解。
django WSGI是单线程的,就是说一个请求处理完了才能响应另一个请求。
uWSGI(C语言书写)+Django相比与单独使用Django,通过多进程,发挥多核的优势,支持的并发量更高。
the web client <-> the web server <-> the socket <-> uwsgi <-> Django
uwsgi服务器运行在django一侧。
uWSGI(C语言书写)+Django相比与单独使用Django,使用多进程,发挥多核的优势,支持的并发量更高。uWSGI中有master和worker进程。master进程根据配置创建相应数目的worker进程。一个worker进程被创建后,它会运行一个python解释器实例,然后在worker进程被销毁前一直使用。master将收到的http请求分配给worker处理。worker进程调用python脚本处理http请求。一个worker进程反复用于处理很多个HTTP请求。woker进程数应该大于CPU内核数。然后根据CPU利用率增加进程数目。
3、我现在系统需要一个功能,当一个任务到达某个状态时,如果24小时没有任何人操作,则自动切换到另一个状态,对每个用户是有不同的任务的,有点想百度外卖下单等待商家接单的那种,有什么可以方便django整合一起的框架吗?django-celery如何?
简单说一下我的考虑,供你参考。
用户下单后,用户订单信息写入数据库。商家接单后,修改数据库中用户订单状态。
关于定时器:考虑使用django-celery创建一个线程做异步处理,24小时后检查数据库中用户订单状态。如果仍然没有商家接单,则修改订单状态。但是这样可能线程太多,资源消耗太大。可以使用django-celery设置循环任务,比如每隔5分钟查询出数据库中已经超过24小时、但是仍然没有商家接单的订单,修改这些订单的状态。
4、要怎么样运行Django里的程序啊?出于比赛需要,要解释一个 Django框架里的软件,本人学java,没接触过 Python的框架?求入口在哪儿?怎么运行啊?
这个操作我的教程"Python Django带你构建Web应用"里有。
进入django项目根目录。python manage.py runserver运行内置的Web服务器。缺省提供服务的IP地址是127.0.0.1,端口是8000。
如果希望对外提供服务,可以修改为真实的IP地址,例如想要使用1.1.1.1:8080对外提供服务。则在settings.py修改ALLOWED_HOSTS的内容为ALLOWED_HOSTS = ['1.1.1.1',]。 d:\django\web> python manage.py runserver 1.1.1.1:8000运行内置的Web服务器。
5、想跟你请教个问题:能用django做旅游调查网站吗,通过调查班级同学的旅游意向,将信息存入数据库,然后进行简单的分析,得出最佳旅游地点,这种想法可行吗?
第一部分收集和存储信息的需求和django相关。这是一个简单的Web应用。使用表单获取同学们的旅游意向。因为数据量小,所以可以直接将数据存入SQLite数据库中。
第二部分数据分析和结果展示,不一定需要依赖于django。根据需要从数据库中提取信息进行分析。如果分析复杂,可以使用numpy、pandas进行分析,使用matploitlib展示分析结果。
6、本来是准备开发一个web应用,主要是网站和客户端(pda)访问,现在网站使用django很方便就完成了,那在客户端(pda)上面的想法是用webservice,也不知道可以直接使用django实现。能不能不用webservice,直接django搞定,希望能得到解决方案并普及一下知识?
可以使用Django REST framework来实现RESTful web service。
7、如何最高效的利用django进行快速开发?或者可以说django那些部分,可以帮助实现快速开发?
我觉得django开发快的原因在于:
首先是python,作为动态类型语言,使用灵活,开发速度快。
其次,和另外一个常用的python web框架flask对比。django提供的功能更全面。django是重量级框架。flask是轻量级框架,很多基本的功能都需要自己实现或者使用第三方组件,但是使用灵活。
django优点:内置功能完善、强大(比如表单、认证、权限控制、文件上传、测试、国际化、分页、序列化、会话、数据验证、异常处理)使用方便,很多功能都不需要程序员自己实现了,强大的ORM机制,强大的admin站点,url pattern灵活易用,APP可插拔,错误提示信息非常详细,官方文档完善。
django缺点:封装层次多,修改困难。想用喜欢的第三方组件来代替内置组件比较困难。django为了将表现和逻辑分离,所以DTL功能比较弱。
根据需求选择框架,快速开发选择django,深层次定制,选择flask。
8、我用终端创建django项目时 提示 django-admin: command not found ,但是运行Python 导入django又可以,这是哪里出错了 而且之前有创建成功过,能帮忙解答一下吗?
比如python安装目录是D:\Python36\,则安装django后,django-admin.exe在D:\Python36\Scripts\中。需要将D:\Python36\Scripts\;添加到系统变量Path中。
9、想问一下,一个分组查询,现在有一个"性别"字段,我想统计其中男女生各有多少人,想用分组查询的办法。但是找不到示例代码,求老师赐教?
类似查询每个用户写了多少篇blog
from django.db.models import Count
numbers = Blog.objects.values('username').annotate(blog_count=Count('username')).order_by()
等效于SQL语句:select username, count(*) from Blog group by username
得到的QuerySets numbers的值是:
<QuerySet [{'username': 'admin', 'blog_count': 2}, {'username': 'Tom', 'blog_count': 4}, {'username': 'Jack', 'blog_count': 2}]>
最后添加order_by()是因为model里面定义了class meta: ordering。
10、Django中的通用视图是个难点吗?今天搞了一天这个通用视图,我是一点没懂。网上也查不到详细的资料,求老师简单介绍一下~
django视图最常做的事情是根据url中传入的参数,从数据中获取数据。加载模板,然后返回渲染后的模板。django提供通用视图来实现这一常见流程。从而减少视图的代码量。
URLconf中参数的名字可能需要修改,比如DetailView通用视图要求使用参数"pk"来表示主键。
在继承了通用视图类的视图类中,只需要指定model和template_name,就可以完成基本的流程。
另外还要注意context变量要和template中对应。
django2.0的手册 2.6.2 Use generic views: Less code is better给出了一个基本的例子,你可以试一下这个例子。
11、我原来做一个项目:因为表没有关联,所以用的是非关系型数据库mongodb,项目开发环境用的是python+django,部署在ubuntu上。当时用了pymongo做python和mongodb的连接,用mongoengine做了django与mongodb的连接。
现在来了新的需求,表之间有关联,因此我准备添加一个mysql数据库。
请问老师,django展示网页的时候,能够同时展示mongodb中表的内容和mysql中表的内容吗?settings.py中应该如何配置数据库呢?
可以在同一个网页中同时显示Mongodb和mysql中的数据。Django中只需要把需要显示的内容通过context传递给template即可。不管context的内容来自哪种数据库。
在setting.py DATABASES中添加连接mysql所需的参数,例如:
'db2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '10.0.0.1',
'PORT': '3306',
}
可以设置数据库和app的映射关系
DATABASE_APPS_MAPPING = {
'app1': 'db1',
'app2': 'db2',
}
也可以在查询或者修改数据库内容时,使用函数using()或者参数using来指定需要使用哪个数据库。
12、作为一名小白,我想问大神:都说python django学起来相对来说比较简单,从入门到学会大致需要多久的时间啊?也就是学习周期大概有多长?需要哪些基础呢?
如果了解MVC框架和http协议,又懂python,那学django比较快。否则的话时间就久一些。
13、我用django自动创建了后台需要的表,其中一张表A用来存需要展示的新闻内容,之前新闻内容是存在另外一张表B中(mysql的数据库编码之前是latin,后来改成utf8,A表B表全部都是utf8编码),我把B表内容导入A表,英文部分是正常,但是中文部分全部变成了问号,求解?
可能问题出在connection连接层上。需要将连接层的编码方式也修改为UTF-8
请关注+私信回复:“学习”就可以免费拿到软件测试学习资料
相关推荐
- hotmail电子邮箱登录(hotmail邮箱在线登录)
-
***@hotmail.com1、其中***是你自己申请的邮箱的用户名。2、hotmail要写在符号@后面。3、最后加上.com,这样就是一个完整的hotmail邮箱的格式。4、比如:zhangj...
- win10iso文件(win10iso文件怎么安装)
-
安装Win10ISO系统文件需要以下步骤:1.首先需要从Microsoft官网下载Win10ISO系统文件,打开网站后选择Win10的版本、语言和架构(32位或64位),点击下载即可。2.下载...
- 英特尔显卡性能排行(英特尔显卡性能排行天梯图)
-
IRIS(英特尔第四/五代集成显卡)英特尔第四代集成显卡,分为HD4200/4400/4600,HD5100/5200。代号为GT2/3/3e,中文名为锐炬。hd420044004600和台式...
- 电脑做系统u盘启动选项(做系统开机u盘怎么选择)
-
操作须知:1、设置U盘启动分很多种:传统legacy机型设置、uefi新机型设置、uefi机型改legacy启动设置2、由于电脑品牌以及机型非常多,这边仅列举一部分电脑的设置方法,3、如果是uefi机...
- 未安装nvidia控制面板(电脑未安装nvidia控制面板)
-
如果你使用的是Nvidia显卡,但未安装Nvidia控制面板,则可能会遇到以下问题:1.无法进行高级显卡设置:Nvidia控制面板提供了高级显卡设置选项,例如显卡超频、显示器分辨率和刷新率、视频调整...
- u盘检测不到怎么修复(u盘检查不了是什么原因)
-
以下是可能的解决办法:1.更换不同的USB端口。有时候电脑某个USB端口可能出现问题,试试换一个不同的端口。2.重启电脑。有时候出现问题的USB端口可能需要重启才能正常。3.插拔几次U盘。有时候...
- win7 共享设置(win7共享设置详细步骤)
-
1.进入控制面板家庭组页打开控制面板找到网络和Internet下面的家庭组和共享选项并打开?2.进入更改高级共享设置打开以后选择更改高级共享设置功能进入?3.开启文件和打印机共享开启文件和打印机共享,...
- 电脑硬盘怎么装步骤图(电脑硬盘怎么装步骤图片)
-
1、查看硬盘的各项信息。硬盘的背面会有硬盘的存储容量以及电压,功率,转速等基本信息。2、购买到的一整块硬盘里面包括硬盘、对接线跟螺丝钉。将对接线和螺丝钉摆在一旁。3、在硬盘的上方会有两个SATA接口,...
- 小马win10永久激活(小马win10永久激活工具使用方法)
-
很简单,重装系统win7,这个可以激活的,然后根据推送升级win10,如果有强迫症可以升级以后重新安装win10系统,以后都是自动联网激活的。安全。小马激活工具win10版是小马专门为windowns...
- win10开机欢迎时间太长(开机欢迎界面时间长)
-
win10第一个就是你系统里的垃圾太多,如果系统垃圾太多,直接清理垃圾就可以解决这个问题,第二个就是你的开机启动项过多,如果开机启动项过多,直接关闭不必要的开机启动项就可以缩短开机时间,就可以解决你...
- 登录126邮箱入口(登录126邮箱入口官网)
-
126邮箱是网易的一个免费邮箱登录入口在浏览器输入:mail.126.com浏览器进入126邮箱网站之后,即可自行登录126邮箱账号。如何在手机上登录126邮箱1、打开手机,找到并打开网易邮箱软件。2...
- 如何让防火墙允许某个软件(如何允许防火墙阻止访问)
-
1.打开电脑的开始菜单,找到控制面板选项,并点击打开。2.在打开的控制面板中,找到防火墙选项,并点击打开。3.在打开的防火墙界面中,单击左侧的允许程序通过防火墙选项。4.在跳转的界面中,选择允许通过防...
-
- 智慧工厂管理系统(智慧工厂管理系统哪家好)
-
智慧工厂智能化系统整体的解决方案分为三个主要部分,分别是现场控制系统(FDC)、生产数据管理系统(PDM)以及工厂数字化协同平台(LCT)。其中,现场控制系统(FDC)是智慧工厂系统非常重要的核心组成部分,它是一个支持大规模互联的集群控制系...
-
2025-11-13 22:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
