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

django怎么添加功能(2023年最新整理)

发布网友 发布时间:2024-09-28 04:53

我来回答

1个回答

热心网友 时间:2024-09-29 08:28

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

如何用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?

如何独立使用django的数据库访问功能

1.安装Django

[plain]viewplaincopy

cdDjango-1.4

pythonsetup.pyinstall

2.安装postgresql的客户端:

[plain]viewplaincopy

sudoapt-getinstall-ypostgresql-client-9.1python-psycopg2

3.新建project:

[plain]viewplaincopy

django-admin.pystartprojectmyproject

4.在myproject下新建app:

[plain]viewplaincopy

pythonmanage.pystartappmyapp

4.新增环境变量:

编辑/etc/profile文件,在末尾加入以下语句:

[plain]viewplaincopy

spanstyle="color:#FF0000;"exportPYTHONPATH=$PYTHONPATH:/home/yc/src/myproject

exportDJANGO_SETTINGS_MODULE=myproject.settings/span

5.

假设数据库已经由Django的另一个应用(名称为otherapp)建好,数据库类型是postgresql,名称为mydb,位于

192.168.1.23。见好的数据库中有一个表,名称是otherapp_user,则将otherapp/models.py拷贝到myapp

/models.py。

注意检查models.py下的classuser类的classMeta:部分,如果没有applabel标签,则要加上:app_label='otherapp'

再修改/home/yc/src/myproject下的settings.py文件,如下:

[plain]viewplaincopy

DATABASES={

'default':{

'ENGINE':'django.db.backends.postgresql_psycopg2',#Add'postgresql_psycopg2','mysql','sqlite3'or'oracle'.

'NAME':'mydb',#'vps2db_test1'Orpathtodatabasefileifusingsqlite3.

'USER':'postgres',#Notusedwithsqlite3.

'PASSWORD':'123',#Notusedwithsqlite3.

'HOST':'192.168.1.23',#Settoemptystringforlocalhost.Notusedwithsqlite3.

'PORT':'5432',#Settoemptystringfordefault.Notusedwithsqlite3.

}

}

[plain]viewplaincopy

INSTALLED_APPS=(

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.sites',

'django.contrib.messages',

'django.contrib.staticfiles',

'spanstyle="color:#FF0000;"myapp/span',

)

6.在myapp目录下编写测试程序

[python]viewplaincopy

frommodelsimportuser

if__name__=="__main__":

try:

u=user.objects.get(id=user_id)

exceptuser.DoesNotExist:

print"usernotexist)

returnNone

else:

returnu

仅需三步,为Djangoadmin增加登录验证码功能

首先,需要安装一个验证码的第三方库-django-simple-captcha,这是一个极其简单但可高度定制的Django第三方应用程序,用于将验证码图像添加到任何Django表单。

在项目的urls.py中注册刚才子类化的站点地址

终端启动站点

浏览器打开站点可以看到验证码已经添加成功了,但似乎样式不美观,这个就留给大家自己去研究吧,给个思路可以拷贝captcha默认的验证码模板,样式重写即可!

实现点击更换验证码功能

将如下代码加入到login.html模板的底部即可,别忘了引入Jquery.js哦!

到此大功告成,很简单的验证码功能就完成了!

下篇预告:django实现前后端分离登录功能,并加入验证码功能!

如何修改Django的admin,添加一些自定义的功能

django和web.py相比,django实力更强,但是我需要解释一下:我感觉django太大了,研究透比较浪费时间和精力,不过你按照他的教材用来开发的话,还是比较省心省力,适合那种整站的开发,不过一旦遇到特别需求的话,修改起来就比较困难,还得去研究它的原代码,就比如admin和录入界面,单纯使用的话很酷,但自定义太麻烦;web.py适合那种目标比较单一的快速开发,虽然没django全,但是以前有web经验的话,开发还是很快的

如何创建一个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?]

#Djangoprovidesarichdatabaselook

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 如何更改django管理员(2023年最新整理) django如何在入口设置(2023年最新整理) 怎么运行一个django项目(2023年最新整理) Django项目怎么创建管理员(2023年最新整理) 如何修改Django管理员的界面(2023年最新整理) djangoadmin界面如何使用(2023年最新整理) 哈密瓜里面的籽能吃吗 学散打学出点成绩要几年? 我19了,我想学散打,没有学习过有关于散打这方面的,大概多久可以学_百 ... occa行李箱好还是ito行李箱好? ITO拉杆箱性价比高吗?ITO拉杆箱哪个型号好 ...要注意(附各型号ITO旅行箱推荐!ITO拉杆箱怎么样?怎么选看这里)_百 ... ...这些坑要注意(附各型号ITO旅行箱推荐!ITO拉杆箱怎么... 魔兽世界的ZUL FB中召唤最后的那个BOSS战锤是任务还是掉落 ...导致辞职后四个月不能交保险,是否可以要求单位补交至今 怎样要求公司补交社保 哈密瓜的籽能吃吗哈密瓜的籽吃了会怎么样 哈密瓜的籽能吃吗 哈密瓜的籽是否能吃 梦幻西游变身术鬼将五件套,懂的进! 梦幻的几个问题,全答的加50分! 如何运行一个django项目(2023年最新整理) 哈密瓜的功效有哪些?快来了解下 django系统如何做权限 零基础入手Django(十四):admin和auth系统 django如何添加管理员账号(djangoadmin注册) django怎么创建超级用户(django创建超级用户进不了auth_user表) django登录怎么写(2023年最新整理) 后危机时代抢占经济制高点:中国企业怎么办书籍目录 什么是制高点?你了解吗?如何抢占制高点? 牵住“牛鼻子”,抓住“关键点” django弹出页面跳转怎么写(2023年最新整理) 吉林农业大学发展学院抢占发展制高点——加强师资队伍建设 ...里有人被打晕或打蒙的剧情啊,是哪部电视剧或电影,麻烦说一下_百度知... django网页本地路由怎么写(2023年最新分享) 一个电视剧或者电影,里面有个人或者是一个店可以将人的一个能力来换取... 怎么用django制作动态网站源码(2023年最新整理) 如何实现第三方登录django(2023年最新分享) 有什么抗日电影或电视剧是自己做王打日本的,除了《桥隆飙》和《锄奸... 有什么好看的国内战争电视剧或者电影啊,打小日本的激烈的不要太老... 有什么好看的电影、电视剧、动漫 要类似死亡笔记的 都是两男或两女等...