1.终端进入任何目录,用命令:django-admin.py startproject hello,这样通常的4个文件(__init__.py, manage.py, urls.py, settings.py)就都生成了,如果不这样会有各种各样的诡异问题产生,无解,干脆就这么干吧,Django很讲究规范,那就按规范来做。

2.urls.py里设置好了各项数据,如数据库什么的,还有一项,ROOT_URLCONF,然后manage.py要这样写:

from django.core.management import execute_manager
try:import settings# Assumed to be in the same directory.
except ImportError:import syssys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)sys.exit(1)if __name__ == "__main__":execute_manager(settings)

当然,各人有异。

3.要运行项目就用命令:python manage.py runserver。。如用到数据库,要生成数据库表就用命令:python manage.py syncdb(首先要创建应用对应的 SQL 语句,使用命令:python manage.py sql polls,polls是应用名,即应用的文件夹名)

4.项目可以包含多个应用,一个应用可存在于多个项目中。应用,可以是 blog 系统,公共记录数据库,或是一个简单的投票系统等等

为了创建名为 polls 的应用,确定在 mysite 的目录中,输入命令:

python manage.py startapp polls

(来自:http://code.google.com/p/docs-django-zh-cn/wiki/IntroTutorial01)

5.

MIDDLEWARE_CLASSES = (#如果没有MIDDLEWARE_CLASSES设置,votes页面会显示Forbidden (403) CSRF verification failed. Request aborted#'django.middleware.csrf.CsrfResponseMiddleware',#如果加上这个,会显示'WSGIRequest' object has no attribute 'user''django.middleware.common.CommonMiddleware',#加上这几行则可以避免上面的错误'django.contrib.sessions.middleware.SessionMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.middleware.csrf.CsrfResponseMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware',
)

6.setting.py里SITE_ID = 1#这里必须设置好,指定了与特定配置文件相关联的Site 对象之数据库ID,在SITE_ID这里有个小问题,(不知道是不是Django的BUG),我下了一个别人的代码,他用的数据库是sqlite,然后我用python manage.py syncdb,进行到设置密码的时候,把终端关了(当时。。我好像是突然想把它的数据库换成mysql。。)再次运行的时候出现错误:Site matching query does not exist。。。google了好久,看到有人说把INSTALLED_APPS里的'django.contrib.sites'给注释掉,我试了果然OK,但是这样岂不是不能在admin显示自己的site了,后来想了很久,突然想到sqlite3新建数据库时是会新建一个sqlite文件的,难道是这个文件在作怪?我找到这个文件,就在项目目录下,移动到回收站,去掉注释,再次运行,一切OK!!世界重归美好!!(好吧,我承认后来还是出问题了,又想了好久,终于,用python manage.py flush命令重新设置用户名之类的东西,终于好了!!)

7.建立project后,settings里的database设置跟1.2和以前的版本是不同的,如果用以前的方法会有警告,不过也可以通过,另外,

'ENGINE': 'django.db.backends.mysql', #注意,前面的django.db.backends.不能丢,否则会说Short names for ENGINE in database configurations are deprecated,用别的数据库也记住不要丢了。

8.研究django-simple-todo(https://github.com/vicalloy/django-simple-todo)时发现不能插入中文的title,又折腾了好久,按这里http://hi.baidu.com/passprot/blog/item/a72ccc3823c896c1d56225fb.html的方法就可以,就是得删除所用的database,然后用create database 数据库名称 DEFAULT CHARSET=UTF8;重建就好了。

9.(来自http://djangobook.py3k.cn/2.0/chapter04/){% block %} 标签告诉模板引擎,子模板可以重载这些部分。 每个{% block %}标签所要做的是告诉模板引擎,该模板下的这一块内容将有可能被子模板覆盖。 {% extends %}标签可以继承父模板,如{%extends "base.html"%}, 模板引擎立即装载其父模板,即本例中的base.html。此时,模板引擎注意

base.html 中的三个 {% block %} 标签,并用子模板的内容替换这些 block。

10.__unicode__() 方法告诉Python如何将对象以unicode的方式显示出来。可以认为unicode对象就是一个Python字符串,它可以处理上百万不同类别

的字符——从古老版本的Latin字符到非Latin字符,再到曲折的引用和艰涩的符号

11.问题:跑youflog(http://code.google.com/p/youflog/),syncdb时显示:

Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/base.py", line 351, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/commands/syncdb.py", line 109, in handle_noargs
    emit_post_sync_signal(created_models, verbosity, interactive, db)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/core/management/sql.py", line 190, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/dispatch/dispatcher.py", line 172, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/home/bob/DjangoStudy/projects/youflog/blog/management.py", line 13, in init_data
    default_cate.save()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/base.py", line 460, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/base.py", line 553, in save_base
    result = manager._insert(values, return_id=update_pk, using=using)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/manager.py", line 195, in _insert
    return insert_query(self.model, values, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/query.py", line 1436, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/sql/compiler.py", line 791, in execute_sql
    cursor = super(SQLInsertCompiler, self).execute_sql(None)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/models/sql/compiler.py", line 735, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/backends/util.py", line 34, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.3.1-py2.7.egg/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib/pymodules/python2.7/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/pymodules/python2.7/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1054, "Unknown column 'slug' in 'field list'")

解决:首先要知道,Django不会去修改已存在的表,它创建还不存在的表!是的,出错点就在这里,我原先已经创建了一个叫blog_category的表,Django在这里又没有另行修改以适应youflog,导致出错。这样就好解决了,进入mysql,删除blog_category表,再syncdb,一切OK!!

12.看magicblog源码时发现html中比如title不能为中文,一直说

Caught UnicodeDecodeError while rendering

郁闷了好久,发现settings里有这一行:FILE_CHARSET= 'gb18030',又折腾了好久,发现把html文件开头的把开头的charset=utf-8"改为gb18030就OK了,但是即使把FILE_CHARSET改为utf-8也一样不能插入中文,否则报一样的错。。。。

13.Context_processor:http://zhidao.baidu.com/question/130397721.html ,从数据库更新什么的有用

菜鸟学Django(持续更新)相关推荐

  1. 有关数据库sql语句基础小白初学者可学(持续更新)

    SELECT - 从数据库中提取数据 SELECT column_name,column_name FROM table_name; 实例: 下面的 SQL 语句从 "Websites&qu ...

  2. 本专栏所有力扣题目的目录链接, 刷算法题目的顺序(由易到难/面试频率)/注意点/技巧, 以及思维导图源文件问题(持续更新中)

    这篇文章为本专栏所有力扣题目提供目录链接, 更加方便读者根据题型或面试频率进行阅读, 此外也会介绍我在刷题过程中总结的刷算法题目的顺序/注意点/技巧, 最后说下文中出现的思维导图源文件的问题 和 打卡 ...

  3. 【持续更新】 2022年 (2023届) 计算机 软件 保研经历 保研经验贴 (菜鸟 211 低rank 无科研成果 复旦/浙大/西安交大/中山/武大/华师大/东南/国科大杭高院)

    写在最前 保研之旅已经画上句号了.作为一名边缘人,在排名.竞赛.科研.英语上都很平庸的普通人,一路走来,有太多的不易,太多的心酸. 在保研的过程中,从学长学姐和各类保研经验贴中获取了太多的帮助,汲取了 ...

  4. 一个菜鸟程序员的成长心路(持续更新)

    学习还是要把心沉下来,不要老是想着去和别人比较,一惯的竞争式思维会导致自己很累,每个人都有自己的人生,不必苛求在每个阶段都去超过对手,要学会去过自己的生活.其实人生中快乐是最重要的,不置可否,成功的喜 ...

  5. 【Python】Python学到什么程度可以面试工作?------持续更新 ...

    前言: 从事python学习,有爬虫.web后台.深度学习相关经验, 坐标北京欢迎骚扰. 本答案力求简洁和直击重点,代码部分使用Python3,更详细的解释请Google,回答有误请务必提醒答主,我将 ...

  6. 机器学习面试经验--2017年持续更新

    机器学习面试经验--2017年持续更新 搜狐面试算法实习生 岗位搜狐后台开发(机器学习NLP) 10:00--11:10 1.首先自我介绍,blabla简单介绍了一下本科研究生学校专业方向,面试官开始 ...

  7. 嵌入式相关开源项目、库、资料------持续更新中

    学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言.单片机.开源项目.物联网.操作系统.Linux.计算机等资源,并且在不断地更新中,致力于打造全网最全的嵌入式资 ...

  8. 还在学Django! FastAPI Web 框架教程来了!

    点击上方"菜鸟学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 大家好,我是菜鸟哥! 都说学Python web开发有三驾马车,其中Dja ...

  9. 关于学习的网站和常用的工具网站的积累——来自贫民窟的孩子(持续更新)

    文章目录 1.简单的唠叨一下 2.我要分享好东西啦,安利一波福利啦 2.1 关于PPT网站 2.2 关于刷题的网站 2.3 好的资料网站 2.4 常用的工具网站 3.学姐大大的安利博客 1.简单的唠叨 ...

最新文章

  1. b树删除节点每次只能删一个吗_面试官,请不要问我B+树了!!
  2. How to add and configure jetty server in maven pom.xml
  3. jquery的$().each,$.each的区别
  4. background-position 详解
  5. php 中文 过长 省略号,css实现文字过长显示省略号
  6. CENTOS6.3下zabbix安装部署
  7. 两个Python web框架:Django Tornado比较
  8. Django开发中常用的命令总结
  9. Java设计模式学习总结(13)——结构型模式之享元模式
  10. 电脑可以开机但是黑屏_铅锤哥:十五种电脑开机黑屏的原因与解决思路
  11. C++ STL 使用assign对list中的元素进行重置
  12. 自动化测试框架selenium+java+TestNG——配置篇
  13. 基于DEV控件库的webservice打印.repx模板
  14. 计算机数字合成音乐,数字音乐合成原理
  15. oracle ebs bug,ORACLE EBS 价目表的导入效能-存储过程BUG
  16. 百度地图高德地图谷歌地图腾讯地图商家数据采集
  17. 我的世界JAVA会支持光追吗_光线追踪改变了「我的世界」,华硕ROG2060S显卡的光追体验...
  18. 【Dlib人脸识别】1. Dlib人脸检测的基本原理
  19. python改变列的数据类型_更改Pandas中列的数据类型
  20. mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程

热门文章

  1. css 文字不规则排版,CSS3文字排版
  2. 基于Python的冬奥会领域问答机器人设计
  3. Spring Boot HTTP over JSON 的错误码异常处理
  4. 二维彩虹和你一起看见更大的世界
  5. 课程笔记《碳中和产业报告》
  6. 织梦联动枚举字段添加一级分类如果超过132个自动变成二级解决方法
  7. Terminator zsh
  8. MySQL优化系列3-Linux查看CPU、内存、磁盘、网络信息
  9. 【Pinia】小菠萝的使用
  10. vue实现echarts词云图业务【详细配置版】