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

如何建立django项目(python创建django项目)

发布网友 发布时间:2024-10-05 12:23

我来回答

1个回答

热心网友 时间:2024-10-09 18:01

导读:今天首席CTO笔记来给各位分享关于如何建立django项目的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Windows10使用IIS部署Django项目

相对于linux系统来说,Windows10下进行django项目部署要简单许多,假设已搭建python环境,以及django项目已进行静态资源的收集(执行了pythonmanage.pycollectstatic),那么就可以开始以下操作了。

以管理员打开cmd命令安装:

再次输入命令:

会生成一个路径,将它保存下来

从刚刚获得的路径中复制一份wfastcgi.py文件到项目根目录中

在根目录中新建一个web.config文件,内容如下:

打开管理工具,进入IIS管理器,添加网站:

添加完毕后即可访问网站!

在IIS管理器中,进入应用程序池

访问页面或单独访问网站,后台出现400错误,这可能是因为没有给网站权限的原因

参考:

django新建项目

win下python环境配置

1)使用pycharm--file--NewProject--Django

点击create创建,等待程序安装完毕

linux安装mysql

win安装mysql

1)配置setting

本人习惯将app放入apps里

进入apps目录下

程序目录

requirements.txt

修改django_demo/_init_.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_mole

回到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入口,即可经过中间件到达路由进行分发。

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
两台手机同在一个抖音号,一台关闭了活跃状态,另一台是不是也显示关闭... 为什么会免费存在推股票的QQ群 谁能推荐几个好的股票类的QQ群? 创作出《大中国》的高枫曾经红极一时,为什么后来变得籍籍无名? 芬达是哪个国家的饮料 走步前做哪些热身动作 2010年有什么大事发生啊???做课件要用的 哪个软件可以查看局域网IP是否通,它是小格子形式的,通的就是绿色的... 我家电脑IP地址写成其他人的怎么办,我家里是小区光钎的,写成别人的没事... 局域网里为什么有的IP是重复的,而且流量很小? 英语《假如给我三天光明》读后感 我也是被快手骗了 然后微信号被冻结了 我也找不回来 绑定的是她们家公司... 你有什么刻苦铭心忘不掉的? ...读初三即将中考,春节期间却整日出去玩,家长该如何教育? ...最好的学校就是霞浦县一中,根本就没有所谓的什么艺术学校,那我给怎... 中专技校初中毕业生有出路吗? 技校生的出路是什么? 上技校都有哪些出路? SOS:电脑没声音啊(没声音,再好的戏也出不来!!!) 问一下:高一物理中位移的运算顺序遵循平行四边形定则是什么意思呀?还有... 位移的合成要遵循平行四边形法则吗??? 热机的效率怎么计算 华为mate8怎样消除屏幕残影? 宝妈在网上如何找工作适合在家做的工作有什么 北京现代属于什么系车? ...需要考哪几门科目?具体到材料学需要哪几本专业书?谢谢了! 材料物理专业考研要考哪些科目,还有读研读几年 电缆发热的原因是什么? 谁知道新加坡有多少当地区号的. 为什么硬币放到热水中水不会溢出来 pycharm如何新建django项目(2023年最新分享) 如何用pycharm创建django项目? 网络工程师 Django(第2节,项目启动) 应届毕业生可以参加单独招生吗 请问走单招必须参加高考报名吗 耐克空军一号是文化鞋吗? 工程纠纷未签合同怎么样打官司 名侦探柯南有没有剧终 《名侦探柯南》会剧终吗(⊙_⊙)? 柯南什么时候剧终? 名侦探柯南剧终了没有?柯南跟灰原哀可能在一起吗? 名侦探柯南什么时候才会剧终? 柯南什么时候全剧终?看情节好像要结束了吧 街边买的小金鱼怎么总是嘴巴朝上呼吸 街边买的小金鱼身上的水溅到我嘴里了,担心有什么传染病怎么办? 0196852211 这是哪里的号码? 为什么吃榴莲会来月经 初一初二成绩一般,初三我该怎样提分? 初一和初二我一直没怎么好好学,成绩算中等,初三怎样学才能上重点高中... 初一初二没好好学,初三怎样才能逆袭?