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

djangowsgi怎么写(2023年最新整理)

发布网友 发布时间:2024-09-26 19:57

我来回答

1个回答

热心网友 时间:2024-10-23 08:23

导读:很多朋友问到关于djangowsgi怎么写的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

如何在django里使用静态文件

推荐用新版本的Django进行开发,可以肯定的是Django1.4以后的版本应该都支持下面的设置

注意:Django1.4版本需要在project/urls.py底部加上:

fromdjango.contrib.staticfiles.urlsimportstaticfiles_urlpatternsurlpatterns+=staticfiles_urlpatterns()

Django1.5-Django1.8不需要添加上面的代码。

settings.py静态文件相关示例代码及说明:

#Staticfiles(CSS,JavaScript,Images)

STATIC_URL='/static/'#当运行pythonmanage.pycollectstatic的时候#STATIC_ROOT文件夹是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来#把这些文件放到一起是为了用apache等部署的时候更方便STATIC_ROOT=os.path.join(BASE_DIR,'collected_static')#其它存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含STATIC_ROOT#如果不想用STATICFILES_DIRS可以不用,都放在app里的static中也可以STATICFILES_DIRS=(os.path.join(BASE_DIR,"common_static"),'/path/to/others/static/',#用不到的时候可以不写这一行)#这个是默认设置,Django默认会在STATICFILES_DIRS中的文件夹和各app下的static文件夹中找文件#注意有先后顺序,找到了就不再继续找了STATICFILES_FINDERS=("django.contrib.staticfiles.finders.FileSystemFinder","django.contrib.staticfiles.finders.AppDirectoriesFinder")

静态文件放在对应的app下的static文件夹中或者STATICFILES_DIRS中的文件夹中。

当DEBUG=True时,Django就能自动找到放在里面的静态文件。(Django通过STATICFILES_FINDERS中的“查找器”,找到符合的就停下来,寻找的过程类似于Python中使用importxxx时,找xxx这个包的过程)。

示例项目dj18static,应用app下面有一个static里面有一个zqxt.png图片:

dj18static├──blog│├──__init__.py│├──admin.py│├──migrations││└──__init__.py│├──models.py│├──static#应用blog下的static,默认会找这个文件夹││└──【zqxt.png】│├──tests.py│││└──views.py├──common_static#已经添加到了STATICFILES_DIRS的文件夹│└──js│└──【jquery.js】│├──dj18static│├──__init__.py│├──settings.py│├──urls.py│└──wsgi.py└──manage.py

当settings.py中的DEBUG=True时,打开开发服务器pythonmanage.pyrunserver直接访问/static/zqxt.png就可以找到这个静态文件。

也可以在settings.py中指定所有app共用的静态文件,比如jquery.js等

STATICFILES_DIRS=(os.path.join(BASE_DIR,"common_static"),)

把jquery.js放在common_static/js/下,这样就可以在/static/js/jquery.js中访问到它!

如何写第一个属于自己的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文件了。。。

如何创建一个Django网站

本文演示如何创建一个简单的django网站,使用的django版本为1.7。

1.创建项目

运行下面命令就可以创建一个django项目,项目名称叫mysite:

$django-admin.pystartprojectmysite

创建后的项目目录如下:

mysite

├──manage.py

└──mysite

├──__init__.py

├──settings.py

├──urls.py

└──wsgi.py

1directory,5files

说明:

__init__.py:让Python把该目录当成一个开发包(即一组模块)所需的文件。这是一个空文件,一般你不需要修改它。

manage.py:一种命令行工具,允许你以多种方式与该Django项目进行交互。键入pythonmanage.pyhelp,看一下它能做什么。你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py:该Django项目的设置或配置。

urls.py:Django项目的URL路由设置。目前,它是空的。

wsgi.py:WSGIweb应用服务器的配置文件。更多细节,查看HowtodeploywithWSGI

接下来,你可以修改settings.py文件,例如:修改LANGUAGE_CODE、设置时区TIME_ZONE

SITE_ID=1

LANGUAGE_CODE='zh_CN'

TIME_ZONE='Asia/Shanghai'

USE_TZ=True

上面开启了[Timezone]()特性,需要安装pytz:

$sudopipinstallpytz

2.运行项目

在运行项目之前,我们需要创建数据库和表结构,这里我使用的默认数据库:

$pythonmanage.pymigrate

Operationstoperform:

Applyallmigrations:admin,contenttypes,auth,sessions

Runningmigrations:

Applyingcontenttypes.0001_initial...OK

Applyingauth.0001_initial...OK

Applyingadmin.0001_initial...OK

Applyingsessions.0001_initial...OK

然后启动服务:

$pythonmanage.pyrunserver

你会看到下面的输出:

Performingsystemchecks...

Systemcheckidentifiednoissues(0silenced).

January28,2015-02:08:33

Djangoversion1.7.1,usingsettings'mysite.settings'

Startingdevelopmentserverat

QuittheserverwithCONTROL-C.

这将会在端口8000启动一个本地服务器,并且只能从你的这台电脑连接和访问。既然服务器已经运行起来了,现在用网页浏览器访问。你应该可以看到一个令人赏心悦目的淡蓝色Django欢迎页面它开始工作了。

你也可以指定启动端口:

$pythonmanage.pyrunserver8080

以及指定ip:

$pythonmanage.pyrunserver0.0.0.0:8000

3.创建app

前面创建了一个项目并且成功运行,现在来创建一个app,一个app相当于项目的一个子模块。

在项目目录下创建一个app:

$pythonmanage.pystartapppolls

如果操作成功,你会在mysite文件夹下看到已经多了一个叫polls的文件夹,目录结构如下:

polls

├──__init__.py

├──admin.py

├──migrations

│└──__init__.py

├──models.py

├──tests.py

└──views.py

1directory,6files

4.创建模型

每一个DjangoModel都继承自django.db.models.Model

在Model当中每一个属性attribute都代表一个databasefield

通过DjangoModelAPI可以执行数据库的增删改查,而不需要写一些数据库的查询语句

打开polls文件夹下的models.py文件。创建两个模型:

importdatetime

fromdjango.dbimportmodels

fromdjango.utilsimporttimezone

classQuestion(models.Model):

question_text=models.CharField(max_length=200)

pub_date=models.DateTimeField('datepublished')

defwas_published_recently(self):

returnself.pub_date=timezone.now()-datetime.timedelta(days=1)

classChoice(models.Model):

question=models.ForeignKey(Question)

choice_text=models.CharField(max_length=200)

votes=models.IntegerField(default=0)

然后在mysite/settings.py中修改INSTALLED_APPS添加polls:

INSTALLED_APPS=(

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'polls',

)

在添加了新的app之后,我们需要运行下面命令告诉Django你的模型做了改变,需要迁移数据库:

$pythonmanage.pymakemigrationspolls

你会看到下面的输出日志:

Migrationsfor'polls':

0001_initial.py:

-CreatemodelChoice

-CreatemodelQuestion

-Addfieldquestiontochoice

你可以从polls/migrations/0001_initial.py查看迁移语句。

运行下面语句,你可以查看迁移的sql语句:

$pythonmanage.pysqlmigratepolls0001

输出结果:

BEGIN;

CREATETABLE"polls_choice"("id"integerNOTNULLPRIMARYKEYAUTOINCREMENT,"choice_text"varchar(200)NOTNULL,"votes"integerNOTNULL);

CREATETABLE"polls_question"("id"integerNOTNULLPRIMARYKEYAUTOINCREMENT,"question_text"varchar(200)NOTNULL,"pub_date"datetimeNOTNULL);

CREATETABLE"polls_choice__new"("id"integerNOTNULLPRIMARYKEYAUTOINCREMENT,"choice_text"varchar(200)NOTNULL,"votes"integerNOTNULL,"question_id"integerNOTNULLREFERENCES"polls_question"("id"));

INSERTINTO"polls_choice__new"("choice_text","votes","id")SELECT"choice_text","votes","id"FROM"polls_choice";

DROPTABLE"polls_choice";

ALTERTABLE"polls_choice__new"RENAMETO"polls_choice";

CREATEINDEXpolls_choice_7aa0f6eeON"polls_choice"("question_id");

COMMIT;

你可以运行下面命令,来检查数据库是否有问题:

$pythonmanage.pycheck

再次运行下面的命令,来创建新添加的模型:

$pythonmanage.pymigrate

Operationstoperform:

Applyallmigrations:admin,contenttypes,polls,auth,sessions

Runningmigrations:

Applyingpolls.0001_initial...OK

总结一下,当修改一个模型时,需要做以下几个步骤:

修改models.py文件

运行pythonmanage.pymakemigrations创建迁移语句

运行pythonmanage.pymigrate,将模型的改变迁移到数据库中

你可以阅读django-admin.pydocumentation,查看更多manage.py的用法。

创建了模型之后,我们可以通过Django提供的API来做测试。运行下面命令可以进入到pythonshell的交互模式:

$pythonmanage.pyshell

下面是一些测试:

frompolls.modelsimportQuestion,Choice#Importthemodelclasseswejustwrote.

#Noquestionsareinthesystemyet.

Question.objects.all()

[]

#CreateanewQuestion.

#Supportfortimezonesisenabledinthedefaultsettingsfile,so

#Djangoexpectsadatetimewithtzinfoforpub_date.Usetimezone.now()

#insteadofdatetime.datetime.now()anditwilldotherightthing.

fromdjango.utilsimporttimezone

q=Question(question_text="What'snew?",pub_date=timezone.now())

#Savetheobjectintothedatabase.Youhavetocallsave()explicitly.

q.save()

#NowithasanID.Notethatthismightsay"1L"insteadof"1",depending

#onwhichdatabaseyou'reusing.That'snobiggie;itjustmeansyour

#databasebackendpreferstoreturnintegersasPythonlonginteger

#objects.

q.id

1

#AccessmodelfieldvaluesviaPythonattributes.

q.question_text

"What'snew?"

q.pub_date

datetime.datetime(2012,2,26,13,0,0,775217,tzinfo=UTC)

#Changevaluesbychangingtheattributes,thencallingsave().

q.question_text="What'sup?"

q.save()

#objects.all()displaysallthequestionsinthedatabase.

Question.objects.all()

[Question:Questionobject]

打印所有的Question时,输出的结果是[Question:Questionobject],我们可以修改模型类,使其输出更为易懂的描述。修改模型类:

fromdjango.dbimportmodels

classQuestion(models.Model):

#...

def__str__(self):#__unicode__onPython2

returnself.question_text

classChoice(models.Model):

#...

def__str__(self):#__unicode__onPython2

returnself.choice_text

接下来继续测试:

frompolls.modelsimportQuestion,Choice

#Makesureour__str__()additionworked.

Question.objects.all()

[Question:What'sup?]

#DjangoprovidesarichdatabaselookupAPIthat'sentirelydrivenby

#keywordarguments.

Question.objects.filter(id=1)

[Question:What'sup?]

Question.objects.filter(question_text__startswith='What')

[Question:What'sup?]

#Getthequestionthatwaspublishedthisyear.

fromdjango.utilsimporttimezone

current_year=timezone.now().year

Question.objects.get(pub_date__year=current_year)

Question:What'sup?

#RequestanIDthatdoesn'texist,thiswillraiseanexception.

Question.objects.get(id=2)

Trac

怎么用django写一个登录页面(2023年最新整理)

'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls', ) 在添加了新的app之后,我们需要运行下面命令告诉Django你的模型做了改变,需要迁移数据库: $pythonmanage.pymakemigrationspolls 你会...

ISTA3E-北美ISTA3E

ISTA 3E检测用于由一个产品、多个产品或包装件放置在滑片或托盘上,固定在一起或是作为一个单元运输的包装或通过FTL运输的包装件。FTL即整车运输。富港检测技术(东莞)有限公司是专注于包装测试的第三方检测机构。公司可以为不同类型的企业用户...

django网页本地路由怎么写(2023年最新分享)

每一个DjangoModel都继承自django.db.models.Model 在Model当中每一个属性attribute都代表一个databasefield 通过DjangoModelAPI可以执行数据库的增删改查,而不需要写一些数据库的查询语句 打开polls文件夹下的models.py文件。创建两个模型: importdatetime fromdjango.dbimportmodels fromdjango.utilsimporttimezone classQu...

怎么用django制作动态网站源码(2023年最新整理)

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。 第二次时,可以进入启动逻辑了。 这里创建了一个django主线程,将inner_run()传入。 随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。 我们接下来看django的主线程inner_run()。 当我们看到wsgi时,django负责的启动逻辑,就此结束了。接...

Django网站怎么部署git(2023年最新整理)

3.通过创建一个新的virtualenv为部署Django应用程序设置环境: mkvirtualenvDjangoApp 要退出新的virtualenv,请使用deactivate。 您可以使用workon在环境之间切换。要加载或在virtualenv之间切换,请使用workon命令:workonDjangoApp 4.在您的当前环境中安装Django pipinstallDjango 5.使用django-admin命令创建样本项目并将目录更...

如何django项目源码(2023年最新分享)

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。 第二次时,可以进入启动逻辑了。 这里创建了一个django主线程,将inner_run()传入。 随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。 我们接下来看django的主线程inner_run()。 当我们看到wsgi时,django负责的启动逻辑,就此结束了。接...

如何用django设计网页(2023年最新分享)

$django-admin.pystartprojectmysite 创建后的项目目录如下: mysite ├──manage.py └──mysite ├──__init__.py ├──settings.py ├──urls.py └──wsgi.py 1directory,5files 说明: __init__.py:让Python把该目录当成一个开发包(即一组模块)所需的文件。这是一个空文件,一般你不需要修改...

怎么运行一个django项目(2023年最新整理)

3、pip 安装Django,默认Django3 升级pip 4、查看Django版本 5、安装mysql 6、查看mysql版本 7、建立Django文件夹并进入, 8、开始一个django项目 9、运行服务器,测试Django项目 10、使用地址访问项目 结语:以上就是首席CTO笔记为大家整理的关于怎么运行一个django项目的全部内容了,感谢您花时间阅读本站内容,希望对您...

django如何构建聊天室(2023年最新整理)

sequence.py这个文件,你需要修改这个path,你可以先把断点打到这一句上,先查看这个path所代表的具体地址,实在不行自己单独写一个变量 结语:以上就是首席CTO笔记为大家整理的关于django如何构建聊天室的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

django怎么监测服务状态(2023年最新整理)

apache,或者tornado多进程,有能力自己写个wsgi协议服务器去调djangoDjango是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为...如何实现Django启动服务器时一起启动socket监听 django启动时会访问一次manage...

Django项目怎么创建管理员(2023年最新整理)

$django-admin.pystartprojectmysite 创建后的项目目录如下: mysite ├──manage.py └──mysite ├──__init__.py ├──settings.py ├──urls.py └──wsgi.py 1directory,5files 说明: __init__.py:让Python把该目录当成一个开发包(即一组模块)所需的文件。这是一个空文件,一般你不需要修改...

django xadmin django bootstrap django和spring比较 整理怎么写 django redis django flask flask和django的对比 python django框架 django api
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有人在宿舍安路由器吗 PF89式80毫米单兵火箭筒研制历史 我们的学校宿舍有电话插口。我们想装路由器几个人一起上网。要怎么弄... 昙花一现的解放军自研两截式火箭筒:70式62毫米反坦克火箭筒 近炸引信分类 安装SQL时,我进入了x86/setup文件夹后,执行setupsql.exe,提示却是:_百... 我爸左胸自发性气胸都引流八天了,怎么还没见好转,还有那么多泡泡,今 ... 73岁糖尿病患者 突然左脑出血 引流手术 和器官切除后17天了能 挣眼手 ... 索爱st18i2.3.3 之前用一键root过,现在好像把camera哪个自带的程序误删... st18i能用什么软件刷机 没有师傅教,自己能学会手机维修吗 django怎么用(2023年最新整理) 在广东有手机维修自学报和图纸吗 我这个配置能玩playerunknown's battlegrounds吗 联通4M宽带玩游戏卡不卡? 著名的巧克力品牌有哪些 月人是什么 素描头像五官画法【眼睛 鼻子 嘴耳眉】 素描五官表现技法-素描画鼻子的方法 小米平板6 Pro可以当电脑用吗 平板电脑可以当电脑用吗,哪个牌子的平板电脑性价比最好? 交管12123提示当前运行环境存在风险 怎么办? 东东在做一道减法题时出新的将被减数个位上的三看成了五百位上的一看... 如何将硬盘设为第一启动 麻城比站到蕲春火车站骑摩托车要多久 想知道:黄冈市 从麻城火车站到新大洲本田摩托车(中共三河口镇法庭支部委... 关于广信CF58的使用、、高分悬赏! 高分悬赏食品企业实验室管理全套制度,有知道的可以发我邮箱,sallyfcp929... 高分悬赏济广电使用路由破解方法 (TP-LINK)!! 200分 在线等! 德语名言翻译 旧手机电池如何维护!! 在望江路附近哪里可以修一下苹果手机后置拍照有杂质? 信阳毛尖的好处有哪些 喝信阳毛尖茶叶的好处 毫米厘米哪个大 关于太阳所有权的辩论会 根据真核基因在原核细胞中表达的特点,表达载体必须具备那些条件? 孩子经常喝可口可乐会怎样? blueglass里面有泻药吗 vba定时抓取网页的一个数字 电线铜是什么铜 56和42用短除法形式怎么写? 56和42的最大公约数用短除法 我想在深圳菜市场卖花,因为经过人流量可以,而且附近有很多小区... 卫生间施工工序是什么? 宝健产品葡萄籽可以和其他药物同服吗? 明德天心信息班怎么样 吃宝健玫瑰葡萄籽对卵巢有帮助吗 世纪风采文化传播有限公司公司简介 杭州古驰文化艺术策划有限公司怎么样?