问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django如何做成一个软件?

发布网友 发布时间:2024-10-06 06:16

我来回答

1个回答

热心网友 时间:2024-10-06 17:33

导读:本篇文章首席CTO笔记来给大家介绍有关django如何做成一个软件的相关内容,希望对大家有所帮助,一起来看看吧。

如何写第一个属于自己的Web页面(Django)

????????上期(超实用搭建个人开发Web网页的软件及配置基础)已经详细的介绍了基于Django+MySQL+PyCharm组合配置的Web开发的基础架构。这期带读者跟着作者写第一个属于自己的Web页面,同时跟作者同一个局域网的其它用户也可以访问。

首先输入pythonmanage.pystartappmyFamilyWeb(表示创建一个自己的Web页面项目),如图1。

生成的myFamilyWeb里的目录结构里的含义如下:

外层的_init_.py文件标识myFamilyWeb是一个Python包。

admin.py用于将Model定义注册到管理后台,是DjangoAdmin应用的配置文件。

apps.py用于应用程序本身的配置。

migrations目录用于存储models.py文件中Model的定义及修改。

migrations/_init_.py文件标识migrations是一个Python包。

models.py用于定义应用中所需要的数据表。

tests.py文件用于编写当前应用程序的单元测试。

views.py文件用于编写应用程序的视图。

以上的介绍都是myFamilyWeb应用的全部内容,后续需要做的就是填充对应的service逻辑对外提供服务。如果就这么启动,就会发现如图2一样访问不了。

想要实现访问自己第一个Web页面(myFamilyWeb),第一步是设置路由和在views.py增加一个可以访问的函数(图3-图6)。

配置模板和html(图7-图13)

配置写好了第一个最简单的Web页面,启动服务器。。。(图14)

在开发者电脑上的浏览器访问(图15)

(配置防火墙端口)(图16)

设置允许多个主机访问(图17)

在终端输入ipconfig

回车找到IPv4的地址:192.168.0.102(图18)

pythonmanage.pyrunserver0.0.0.0:8000(这次启动的时候在后面添加0.0.0.0:8000)。

然后本地网络中的其它计算机就可以在浏览器中访问你的IP地址了,(这个网址只能同一个局域网的主机可以访问)

之后就是好好去学习如何写html文件了。。。

如何创建一个Djangoapp

如果你是想创建一个论坛APP的话,你可以试试多点社区。简洁实用。

django一个项目多个App项目搭建

django可以在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户

本次测试以python2.7

其次分别建立相应的App模块:todo,oa,web

如图所示:

在以上的配置中导入了include对配置进行包装

同时导入了index函数,index在todo,oa,web中的views文件分别建立

同时指定了一个打开的默认首页,即webapp下的index/pre

此时运行程序,页面如图所示

如果此时输入的路径为localhost:8000/web/inex,

localhost:8000/oa/inex,

localhost:8000/toto/index将得到不同app的展现,

如何将django1.7程序打包成exe程序

python制作exe可执行文件的方法---使用pyinstaller

python生成windows下exe格式的可执行程序有三种可选方案:py2exe是大家所熟知的,今天要介绍pyinstaller,这个工具全平台可用。我曾使用python制作一个工具程序供公司同事使用后,由于公司使用maclinuxwindows都有很多,就使用过它来将程序做成可执行文件,兼容性好,只是会使得程序在linux平台和mac平台启动较慢(windows还是比较快的),但基本够用。

安装完pyinstaller之后就可以开始了。

1.使用pyinstaller生成可执行文件的方法

1.1将依赖文件集中到一个文件夹:

pyinstaller-D-wmain.py#把main.py替换成你的主入口python文件即可。

-w参数代表main.py是一个窗体程序。

1.2将所有依赖文件都打包到同一个可执行文件中:

pyinstaller-F-wmain.py

2.调查pyinstaller生成程序的加载过程

使用如下命令,可以得到运行时的跟踪,tracing,loader的加载过程。

pyinstaller-Fwdaui.py#把aui.py换成你需要侦测的文件即可。

Django源码阅读(一)项目的生成与启动

诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)

取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。

django-adminstartprojectHelloWorld即可生成django项目,命令行是exe格式的。

manage.py把参数交给命令行解析。

execute_from_command_line()通过命令行参数,创建一个管理类。然后运行他的execute()。

如果设置了reload,将会在启动前先check_errors。

check_errors()是个闭包,所以上文结尾是(django.setup)()。

直接看最后一句settings.INSTALLED_APPS。从settings中抓取app

注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于django\conf\__init__.py

这是个Settings类的懒加载封装类,直到__getattr__取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的__dict__上(下次会直接在自己身上找到,因为__getattr__优先级较低)

为了方便debug,我们直接写个run.py。不用命令行的方式。

项目下建个run.py,模拟runserver命令

debug抓一下setting_module

回到setup()中的最后一句apps.populate(settings.INSTALLED_APPS)

开始看apps.populate()

首先看这段

这些App最后都会封装成为AppConfig。且会装载到self.app_configs字典中

随后,分别调用每个appConfig的import_models()和ready()方法。

App的装载部分大体如此

为了方便debug我们改写下最后一句

res的类型是Commanddjango.contrib.staticfiles.management.commands.runserver.Commandobjectat0x00000101ED5163A0

重点是第二句,让我们跳到run_from_argv()方法,这里对参数进行了若干处理。

用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。

这里分为两种情况,如果是reload重载时,会直接执行inner_run(),而项目启动需要先执行其他逻辑。

django项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。

第一次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。

第二次时,可以进入启动逻辑了。

这里创建了一个django主线程,将inner_run()传入。

随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。

我们接下来看django的主线程inner_run()。

当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了

这相当于我们之前在fastapi中说到的,将fastapi的app交由asgi服务器。(asgi也是django提出来的,两者本质同源)

那么这个wsgi是从哪来的?让我们来稍微回溯下

这个settings是一个对象,在之前的操作中已经从settings.py配置文件中获得了自身的属性。所以我们只需要去settings.py配置文件中寻找。

我们来寻找这个get_wsgi_application()。

它会再次调用setup(),重要的是,返回一个WSGIHandler类的实例。

这就是wsgiapp本身。

load_middleware()为构建中间件堆栈,这也是wsgiapp获取setting信息的唯一途径。导入settings.py,生成中间件堆栈。

如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。

app入口→中间件堆栈→路由→路由节点→endpoint

所以,wsgiapp就此构建完毕,服务器传入请求至app入口,即可经过中间件到达路由进行分发。

如何用django开发一个简易个人Blog-Python

设计并实现一个基于Python的个人博客系统,需要完成如下功能

完成个人博客系统的设计和开发

用户可以通过个人博客系统,发布最新的日志

运用所学专业理论及实践,分析解决遇到的问题以提高自己的动手、思考及解决问题的能力

主要模块如下

文章管理模块:主要功能是管理员系统管理员登入后,浏览查看文章,删除不好的文章等功能

标签管理模块:主要功能是管理员系统管理员登入后,浏览查看相册,删除相册等功能

文章、标签浏览模块:主要功能是游客进入系统后。可以浏览文章列表,可以按标签查看文章

评论系统模块,游客可以发表查看别人的评论

安装与使用

项目采用Django框架进行开发,Django是一个用于快速web开发的优异方案(几乎没有之一),获取源码后可以按照如下方式来运行代码

新建mysql数据库,将数据库sql文件导入

修改源码包中的csworkblog/settings.py文件,将DATABASES这个变量里的内容改一下,这个就是你本地的数据库url和用户名密码,其中NAME为你的database名称

进入源码包,打开cmd,运行命令pythonmanager.pyrunserver就能启动服务,端口为8000

为后台管理界面,管理员用户名密码为admin123456,可以进行文章管理标签管理评论管理

界面还是比较好看的,项目截图源码下载地址???cs-work.com/p/21031?

结语:以上就是首席CTO笔记为大家介绍的关于django如何做成一个软件的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 ...生日礼物,本来我感觉爱马仕的挺不错的,但她有兰蔻真爱奇迹了..._百... 今天我接到一个自称拍拍礼物发放中心打来的电话(400-612-0170),不知道... 曾经在一个团购网买了双鞋子,前两天给我打电话说有礼物给我.是送一... 蜡笔小新1998剧场版-电击!猪蹄大作战 小新他们欣赏晚景时的背景乐是什 ... 如何修改CAD的填充比例? 阿里云盘不限速吗? 如何搭建外脚手架? 外架叉架搭接标准 古代胡人是哪里人士(古代胡人是哪里人) 胡人是现在的什么人古代所说的胡人是现在的什么人 ...接头扣件、十字扣件的用量,按规范设置就可以了 鸭掌木冬天怎么养护 鸭脚木冬天怕冻吗 番茄肥牛拌面怎么做? 自制番茄肥牛拉面的技巧有哪些? 番茄肥牛面怎么做比较好吃? 肥牛番茄泡面有哪些简单又好吃的做法? 北京贴条如何申请行政复议? 交通违法怎么申诉? 治疗鼻窦炎最佳方法? ...要我写作文,是写给老师的家属的一封信,求求求各位大虾帮帮忙... 是复印机不用墨,还是打印机不用墨啊? 冻干粉对皮肤有什么用 冻干粉早晚都能用吗 神奇宝贝健太动画片 宠物小精灵放送局动画片介绍 推荐几个女生爱看的动画片 有什么免费的网络建站软件? 湖南友谊阿波罗商业股份有限公司简介 关于养金毛家里有味道的问题 胡子敬执掌企业 房子以前养金毛,现在搬走,但是留下很大的恶臭,要如何去除?能彻底去除这 ... 阿里云盘和 Teambition 网盘 52开头农业银行信用卡优惠!在国内好像很少有什么优惠啊? 似乎62开头的... 肉牛喂什么饲料长膘快 牛预混料哪种好 现中国农业银行正举行活动,花2元办理短消息,赠送网上银行(K宝) 电话银 ... ...衣.辞海.拔河.榭.成都至贵阳,中间是重庆.十字路直上居庸关)各打一... 不用冰淇淋机也能自制冰淇淋,方法是什么? 法式铁板烧有哪些特点和独特之处 怎么样在家里不用任何辅助工具来做冰淇淋?既要简单,还要好吃哦!!!(不... 在家怎样自制冰淇淋?