为什么龙之谷总是报错用pycharm总是报错

2015年11月 移动开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。1329人阅读
Python(65)
Django(5)
近期略微接触了一下Django。在学习的过程中可谓是坎坎坷坷,遇到了很多的问题。
下面就来谈一谈我对Django的一点点的见解。
Django项目的创建
使用PyCharm来开发Django项目是非常的简单的。创建项目的时候选中Django项目,然后在more settings中写上应用的名称。这样就算是创建好了一个全新的项目。
虽然这里面有一个MyDjango的子文件夹,但是这个文件夹的存在是MyDjango项目的支持文件。我们最好是在应用文件夹MyBlog下完成我们的业务。这样更容易进行管理。
在这个过程中,我就遇到了让我很是难忘的问题。
没有MyBlog文件夹.
这个问题的出现是因为你没有分清楚项目和应用之间的区别。我刚开始的时候,就犯了这个错误。
应用是存在于项目内部的实现了一系列功能的模块。是做为子集而存在的。
django-admin startproject projectname//创建一个Django项目
django-admin startapp appname// 创建一个django的应用
这样就好了。当然这一个步骤使用PyCharm更加的简单。在这里就不过多叙述了。
初始访问就失败了.
这一点,我们可以这么来想,访问一个服务器上面的一个路径,首先这台服务器上必须要有这个应用程序吧。所以我们需要将这个应用部署到服务器上。
在这里开发服务器上同样也要被部署上相关的应用,而这个应用就是我们刚才创建的那个应用MyBlog.所以要在settings.py中对INSTALLED_APP进行应用名称的添加。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
下面我在提供一个多图的PyCharm开发Django项目的链接,总结的很详细。
Django 常用的命令
这里简单的介绍几个常用的命令。
django-admin startproject projectname //创建一个django项目
django-admin startapp appname // 创建一个django项目的应用
python manage.py runserver
//运行项目,并将项目部署到开发服务器上面
python manage.py syncdb // 这一个过时了,待会说
python manage.py makemigrations
python manage.py migrate这两个需要配合使用,目的是对数据库中相关表结构的创建以及同步操作
python manage.py createsuperuser // 创建一个超级管理员,用于后台的管理任务
urls.py的配置
这个文件就是一个映射文件,用于将我们在浏览器中输入的url映射到相关的视图展示函数上。有静态映射和动态映射之区分。
静态映射的方式:
这里主要是静态的url的映射的处理。共有如下几种方式:
from MyBlog.views import *
url(r'^showStudents/$',showStudents),
url(r'^PurpleRing1/$',purpleRing1),
url(r'^PurpleRing2/$',purpleRing2),
urlpatterns = ['MyBlog.views',
url(r'^admin/', admin.site.urls),
url(r'^MyBlog/$','sayHello'),
url(r'^showStudents/$','showStudents'),
url(r'^PurpleRing1/$','purpleRing1'),
url(r'^PurpleRing2/$','purpleRing2'),
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^MyBlog/$','MyBlog.views.sayHello'),
url(r'^showStudents/$','MyBlog.views.showStudents'),
url(r'^PurpleRing1/$','MyBlog.views.purpleRing1'),
url(r'^PurpleRing2/$','MyBlog.views.purpleRing2'),
动态url的匹配:
这里主要是利用正则表达式的方式来实现的,如下面的几个小例子。
url(r'^MyBlog/index/\d{2}/$','MyBlog.views.index')
就把url形式为MyBlog/index/数字长度为两个
类型的映射到了MyBlog.views.index 函数上了
2:复杂点的
url(r'^MyBlog/index/(?P&id&\d{2})/$)','MyBlog.views.index')
就是url链接为MyBlog/index/数字
类型的网址才会被映射到index对应的方法上去。并展现出对应的视图
对应的index方法声明:def index(request,id):
模板渲染相关
我们的项目中需要有一个名称固定为templates 的文件夹,用于存放我们的页面视图的模板文件。当有用户请求时,底层就会通过MVC模式将模板文件渲染并展示给用户相关的页面。
渲染的方法有静态渲染,也有动态渲染(其实也不算是动态渲染了,只是加进了模板变量和模板标签等而已)。
先来看一个简单的渲染方法
哦,对了。忘了说了。渲染的代码逻辑都是应该在views.py中进行实现的。
from django.http import HttpResponse
from django.template import loader,Context
def purpleRing(request):
t = loader.get_template('PurpleRing.html')
C = Context({})
return HttpResponse(t.render(C))
这种方式略显繁琐,所以引入下面的较为简单的方式。
from django.shortcuts import render_to_response
def purpleRing(request):
return render_to_response('PurpleRing.html','{}')
第二个参数是一个字典类型的数据,如果模板中没有使用到模板变量,或者模板标签。就让它为空即可。
下面来看一看使用模板变量以及模板标签的渲染吧。
模板变量{{模板变量名}}
在模板文件中在用得到变量的地方使用模板变量的方式进行添加。
然后在render_to_response的第二个参数(一个字典)中,我们就可以使用这个模板变量的key为其指定value的值。
模板变量可以使用额=的数据类型可以是字典,列表,甚至是一个类,并且使用类的时候
我们应该可以直接使用其成员变量,这很容易理解了。还可以直接按照调用类的成员变量的
形式调用其内部的方法,但是注意这时使用到的方法不能带参数,而且需要并且一定要有一个返回值
模板标签{% 标签内容%}
仍旧是看几个小例子吧。
1: statement%} # if 后面不能加括号
&XX:{{标签变量}}&
&XX:{{标签变量}}&
2: XX in XXS %}
&XX:{{标签变量}}&
下面来看一个较为复杂的也较为全面的渲染文件的写法。
urls.py中的映射:
url(r'^showStudents/$',showStudents),
views.py中:
from django.shortcuts import *
from django.http import HttpResponse
from django.template import loader,Context
def showStudents(request):
list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]
return render_to_response('template_student.html',{'students': list})
template_student.html:
&!DOCTYPE html&
student in students %}
id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}
Django中关于数据库的使用
django是一个优秀的web框架,所以它必然支持很多类型的数据库。下面我们以sqlite3为例,看一下其书写:
# Database
# /en/1.9/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'MyBlog.db',
'USER':'',
'PASSWORD':'',
'HOST':'',
'PORT':'',
我们需要知道的是engine代表数据库类型就行。至于NAME就是我们在数据库中的对应的数据库名称。
也许,你会想使用MySQL数据库,当然,这也是没问题的,我们需要更改的也就对应着engine,name,user,password,port 等等的设置,接触过web开发的都很清楚了。就不多说了。
下面谈点实际的,那就是遇到了数据库相关的错误了。怎么办?
django.db.utils.OperationalError: unable to open database file
这个问题的出现有两种情况:
&&&&&&&& 没有安装连接从数据库的驱动文件,解决方法。安装一下相关的connection 文件,比如jar什么的都行,在PyCharm下很方便。
&&&&&&&&这是文件权限被禁止而引起的。
&&&&&&&&在Linux下,修改一下权限即可。即chmod + 775 + 数据库文件名称。
&&&&&&&&但是今天我们要说的是怎么在Windows下怎么做。
# django & 1.7 时:
python manage.py syncdb
# django & 1.7 时:
python manage.py makemigrations
python manage.py migrate
django.db.utils.OperationalError: no table named XXX.这是因为我们虽然在models.py中创建了相关的对象,但是数据库中还没有得到同步,所以访问一个不存在的东西,肯定是会报错的。所以要对数据库完成一次同步操作。
# django & 1.7 时:
python manage.py syncdb
# django & 1.7 时:
python manage.py makemigrations
python manage.py migrate
上面的都是我在学习的过程中亲身遇到的一些问题,貌似能遇到这么多问题,也是一种幸运。这样才让我获得了更多的经验嘛。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:540234次
积分:8774
积分:8774
排名:第1669名
原创:273篇
转载:33篇
评论:231条
本作品采用进行许可。
本作品 (郭璞 博文, 由
确认,转载请注明版权。
阅读:5886
阅读:18388
阅读:5602
文章:19篇
阅读:27676
阅读:8818
文章:15篇
阅读:16487
(10)(11)(13)(17)(34)(25)(21)(29)(18)(8)(14)(25)(22)(28)(37)(4)刚接触Python学习,正准备做个爬虫的例子,谁知道代码一开始就遇到了一个大坑,狂汗啊。
问题是这样的:我通过代码爬取了博客园首页的HTML代码并存入到blog.txt文件当中,然后准备读取出来之后进行分析,可就在读取文件的这一步出现了问题。
执行读取代码的时候程序总是会抛一个叫 &UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 117274: illegal multibyte sequence&的异常。
刚开始以为是简单的编码问题,又是在代码中设置编码格式,又是百度谷歌的。可是,没找到一个靠谱的解决方案,问题依然存在。
折腾了好几天实在是没办法了,后来突然想到会不会和IDE的设置有关系(我使用的IDE是PyCharm)。呵呵,折腾一番还真的解决了。
错误截图:
步骤一:打开IDE的设置选项
步骤二 查看编码设置,并将所有设置都设置为UTF-8
步骤三 编码设置完后重新执行代码,问题解决
阅读(...) 评论()2651人阅读
Python(17)
定位到函数定义
在函数名处 Ctrl + B
就会快速定位到函数定义处
在Console中执行文件
全选内容后,右键菜单
Execute Selection in Console
或者快捷键 Alt + Shift + E
设置工作目录,这样一些数据文件可以用文件名快速访问
&&& import os
&&& os.chdir('C:\\GitHubRepositories\\PythonProjects\\ML2')
4.设置编译目录,可以直接在PythonConsole中load相关文件
sys.path.extend(['C:\\GitHubRepositories\\PythonProjects\\ML2'])
Python3.5 已经不能直接reload, 必须使用如下:
&&& import importlib
&&& importlib.reload(kNN)
如何读取含有 环境变量的路径 :
使用os.path.expandvars函数
os.path.expandvars(r”%windir%\fonts\simsun.ttc”)
参考如下:
Python 3.5
string.format:
一个例子:
将数字转化为一个颜色
"#{0:06X}".format(random.randint(0, 0xFFFFFF))
https://docs.python.org/3/library/string.html
Python 3.5 Annotation 在PyCharm中的应用
注意在表示参数是 tuple,list时要先:
from typing import Tuple
from typing import List
随后写如下语句:
def file_to_matrix(a_filename: str)-& Tuple[ndarray, list, dict, List[str]]:
def file_to_matrix(a_filename: str)-& tuple[ndarray, list, dict, list[str]]:
否则会报错:
def file_to_matrix(a_filename: str)-& tuple[ndarray, list, dict, List[str]]:
TypeError: ‘type’ object is not subscriptable
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:683820次
积分:9421
积分:9421
排名:第1468名
原创:298篇
转载:17篇
评论:116条
(2)(1)(1)(4)(5)(5)(2)(2)(3)(3)(2)(1)(5)(6)(1)(2)(2)(1)(3)(6)(1)(4)(3)(1)(10)(10)(5)(2)(8)(3)(3)(3)(10)(3)(9)(10)(9)(7)(10)(4)(3)(2)(3)(2)(1)(4)(3)(8)(2)(6)(4)(4)(1)(2)(2)(1)(1)(2)(11)(2)(4)(1)(3)(2)(4)(2)(5)(3)(5)(7)(2)(6)(5)(2)(4)(4)(1)(1)(1)(3)(2)(3)(4)(6)(6)(4)(8)(1)(1)(1)(1)

我要回帖

更多关于 为什么龙之谷总是报错 的文章

 

随机推荐