2024-11-02 03:51:52
本篇文章给大家谈谈djangodrop怎么恢复,以及django重置密码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
1.打开cmd,输入pinglocalhost,查看是否正常。2.进入控制面板--系统和安全--防火墙,最简单的方法是选择恢复默认值。3.若第二步后仍无法打开页面,同时是使用pycharm编译器编译的,查看“运行应用通过Windows防火墙”这一项里面有没有pycharm,没有的话添加进去。4.若仍然不行,关闭防火墙,看能否打开页面,可以的话,再打开防火墙。
Django里面怎么实现数据库视图啊就是虚拟表正经回答:先在数据库中建立好视图,然后django中建立对应的model。表所对应的类下面再建立一个Meta类,大致如下
class?ViewModel(models.Model):
????"""这个model类对应你所建立好的视图"""
????class?Meta(object):
????????"""同理,该方法可用于使用mysql中任何已有的表,不仅是视图"""
????????db_table?=?'your_view'?#显式指定表名,也就是你建立的视图的名字
????????managed?=?false?#默认是ture,设成false?django将不会执行建表和删表操作
????#?建立字段间的映射
????#??需要注意的是,必须设一个字段为主键
????#??不然django会自动创建一个id字段为主键,引发错误
百度知道越来越辣鸡了,全是答非所问的。
django中怎么动态操作数据库字段?django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.pysyncdb这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生SQL解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了altertableusersdropcolumntelphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。
django无法加载出css样式,不管是admin还是自己创建的html都无法加载如果你也是这个情况的话,通过以下的方案能够90%的解决问题,
在浏览器中打开django自带的后台admin,发现浏览器中是响应成功的,但是样式就是丢失了,
这个时候不要着急,winl+R(win键是键盘左下角第二个键)打开输入regedit打开你的注册表,
然后找到HKEY_CLASSES_ROOT-.css(前面有个点…)找到之后点击它,然后选择ContentType
更改内容为text/css初始的内容是application/x-css、所以导致样式丢失的,更改过来之后ctrl+shift+r强制
刷新浏览器+重启django服务器就好啦,你想要的样式就会恢复啦,
亲测可用才转给你的
Django的多数据库问题,怎么解决选择开始菜单中→程序→【ManagementSQLServer2008】→【SQLServerManagementStudio】命令,打开【SQLServerManagementStudio】窗口,并使用Windows或SQLServer身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
如何解决Django1.8在migrate时失败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)
Traceback(mostrecentcalllast):
...
DoesNotExist:Questionmatchingquerydoesnotexist.
#Lookupbyaprimarykeyisthemostcommoncase,soDjangoprovidesa
#shortcutforprimary-keyexactlookups.
#ThefollowingisidenticaltoQuestion.objects.get(id=1).
Question.objects.get(pk=1)
Question:What'sup?
#Makesureourcustommethodworked.
q=Question.objects.get(pk=1)
#GivetheQuestionacoupleofChoices.Thecreatecallconstructsanew
#Choiceobject,doestheINSERTstatement,addsthechoicetotheset
#ofavailablechoicesandreturnsthenewChoiceobject.D