我和Django那些事儿(3)----那蛋碎的两星期

那蛋碎的两星期

  对我来说,最郁闷的事儿,莫过于不会。搭完环境之后,问了下学长,做Django的时候可能要用到的知识,他说:python(django就是python的一个框架儿)、Django、mysql、html+css、jQuery(可能)。额,大体发现了一下,原来这些东西我之前都没接触过...真可谓是从头开始,从零开始django啊。

  那两个星期真是最郁闷的两个星期,弯路走了一大截,会想起来,哎,就是Django中文的东西太少了,也没人指点一下怎么学,各种蛋疼啊,记录一下。

  最先要吐槽的是英文文档,以前学的和现在正学的英语真是应试啊,无语,看英文文档看的我想吐血...

  额,搜索引擎可真是换着用,百度,google,duckduckgo(专门为做项目的搞的),有时候还要翻 墙。

  python:万恶的《dive into python》真的不适合入门,大体上貌似看到正则表达式那就不看了,后来看笨办法学python还不错,地址 http://lpthw-cn.ducktypist.com/en/latest/index.html,恩,对python来说另一个好东西是它的官网 http://python.org/,文档很全,就是是英文,网易现在有公开课,里面斯坦福大学的编程导论就是用的python,而且,这个视频还解决了我一直以来的一些疑问,就是数学和计算机的关系,讲的真的很好(这玩意儿是快考四级的时候看的,印象深刻)。我找了好久之后才发现,python最好的东西在这儿,啄木鸟,http://wiki.woodpecker.org.cn/moin,里面的绝对简明教程就非常nice,要是早知道,别的玩意儿就都不用看了,地址 http://wiki.woodpecker.org.cn/moin/PyAbsolutelyZipManual

  django:《the django book》,是神书,可惜学长给的是1.0,那个蛋疼啊,里面有些东西在Django1.3.1里面不一样,还有些东西它貌似很明确却根本不明确,比如在url.py这个文件里面有个urlpatterns = patterns(神马神马),()里面应该是url(),书上没有url这个强制类型转换,在比如它讲新东西后加一些新的代码都是用**代码**表示,你妹的*啊,也不说说,刚开始照着敲哪知道这些啊,对着书看一点儿错没有,这个郁闷啊,类似的事儿还有很多。不罗嗦了,直接上2.0的地址http://djangobook.py3k.cn/2.0/,django另一个好去处是他的官方文档,很全,地址 https://docs.djangoproject.com/en/1.3/,最好就是一边《the django book》,一边上官档查。

  mysql:我们下学期开数据库,所以,这也是从头开始,《mysql技术内幕》还可以,就看了他一本,太厚,挑着看,还没看完,好在一开始做简单的东西数据库没用复杂的技术。这个坑爹之处在于《the django book》里边对于数据库的配置讲的不明确,而且之前都没学过,完全不知道怎么弄,最常用的命令 mysql -u root -p(用户 root -p 输入密码),进来之后可以用root 也可以创建用户 create user ‘用户名’@‘localhost’ indentified by ‘密码’ ,grant all on 用户名.* to ‘用户名’@‘localhost’, 哦,每条指令后面有分号。

推荐一下mysql的查询工具MySQL Query Browser和MySQL Admistrator。或者直接去下载mysql workbentch 他就都带全了。

分一下段,重要的一点,修改mysql字符集,mysql下输入 show variables like 'character_set_%'; show variables like 'collation_%';查看现在的字符集,改为utf8。这个当时头疼了很久,因为老有东西改不成utf-8导致后来出些问题,修改配置文件的方法很复杂,建议直接使用MySQL Admistrator。在里面的Startup Parameters(左侧)找到Advanced(右侧),里面的localization Def. char set 输入utf8,Default collation 输入utf8_unicode_ci。再show variables like 'character_set_%'; show variables like 'collation_%';下 ,如果还有没改成utf8的,就直接使用mysql命令。

 1 以下都是在mysql中的msql命令
2 SET character_set_client = utf8 ;
3 SET character_set_connection = utf8 ;
4 SET character_set_database = utf8 ;
5 SET character_set_results = utf8 ;
6 SET character_set_server = utf8 ;
7
8 SET collation_connection = utf8 ;
9 SET collation_database = utf8 ;
10 SET collation_server = utf8
11
12
13 set global character_set_database=utf8;
14 set session character_set_database=utf8;
15 set global character_set_server=utf8;
16 set session character_set_server=utf8;



新建一个数据库,create database 名字,查询当前的数据库,select database(); 使用另一个数据库,use 名字。有了用户和数据库之后,按照书上说的配置setting.py,不太直观,贴一个代码看看吧,我的数据库是AreessBook,用户root,密码123。

 1 DATABASES = {
2 'default': {
3 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
4 'NAME': 'AdressBook', # Or path to database file if using sqlite3.
5 'USER': 'root', # Not used with sqlite3.
6 'PASSWORD': '123', # Not used with sqlite3.
7 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
8 'PORT': '', # Set to empty string for default. Not used with sqlite3.
9 }
10 }

 

 

等写好app的model后运行python manage.py sqlall 你的app名字,python 会显示应有的mysql命令。更方便的命令是 python manage.py syncdb ,Django会自动给你生成相应的表,不过这个是有问题的,syncdb只生成原来没有的表,如果你的model有变动,这个指令是没有用的。还需要用到mysql里面的alter命令,比较复杂(暂时没搞懂),我就是直接把改动的表删掉,然后重新syncdb一下。

  html+css+jQuery:这个貌似不难,但是django里面的模版有一些新特性,用{{% %}}标签来,对着《The Django Book》研究下,推荐的东西就是用火狐加上firebug(火狐的一个插件,为开发人员准备,很好用),然后w3c的教程 http://www.w3school.com.cn/ ,事实上用firebug+w3c是很好的,直接拿下来改了用。以为以前没研究过,记录一下,html现在就直接div+css就ok了,css里面.是选class的,#是选id的,名字加{}是定义类的,比如body{神马:神马}(类似python的字典)。jQuery暂时没看,是javascript的一个框架,改天用它研究一下相册。哦,对了,css和图片什么的是静态文件,这个以后再说他们的配置,也头疼了几个小时。

  Django的过程郁闷的事很多,但是学到东西的感觉不错,记下来分享,想到什么说什么,好的吧,吃饭先。


你可能感兴趣的:(django)