最近又开始了django的学习,虽然学了不少,但越学越迷茫耶,可能python基础不是很牢固。回到学校一定好好啃啃书。
本次学习参考了《Django中文教程》
下载地址
《Django 中文教程》
进入正题
1、什么是Django
一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以
最小的代价构建和维护高质量的Web应用。
由于先前没有学过任何Web框架,我把django 的理解成一个小型服务器的python web框架。事实证明,学django 前了解一下php之类的服务器语言可能效果更好 :)
2、学习心得
书籍方面,讲的很好很好,但版本原因,本书使用的例子是django 1.1.0版本的,很老的版本,当时的django还不成熟,有些功能在现在最新的版本下一句被去除,所以有些地方不是完全正确的,我也通过一些整理,把学习的心得整理了一下。
①环境搭建:
我使用的是python3,安装django的方法是使用pip
pip install django
使用IPython查看是否安装成功(其他可交互的编译器也ok)
然后需要安装数据库,我使用的是mysql,要调用mysql,python3没用了mysqldb,只能使用pymysql,使用pip安装
pip install pymysql
②开始项目
在需要搭建的目录下,运行命令django-admin.py startproject helloworld,会创建一个helloworld目录
这个目录需要做一些配置才能让django更好的工作
1、django的数据库配置
进入settings.py
DATABASES={
'default':{
'ENGINE':'django.db.backends.mysql', #调用mysql
'NAME':'test', #数据库名
'USER':'root', #用户名
'PASSWORD':'root', #密码
'HOST':'', #默认localhost
}
}
然后,在__init__.py里配置mysql
import pymysql
pymysql.install_as_MySQLdb()
这样就把数据库的准备工作完成了
2、现在可以运行django了,命令行进入到有manage.py的文件夹,使用命令
python manage.py runserver
即后,便可以在http://127.0.0.1:8000/下访问django了
但这个8000是默认的,可以在runserver后输入端口号。
当以上的页面显示的时候说明已经成功把django配置好了!
3、开始最经典的helloworld
django是MVC模型,M是模型model,V是视图view,C是控制器controller。
在这些自动生成的文件里,并没有这三个文件(模块),那就自己创建一个吧!
①在工程里新建一个叫views.py的文件(当然不一定得是这个名字,但能直观地看出来是视图模块)
在里面输入
from django.http import HttpResponse
def Hello_World(request):
return HttpResponse("Hello,World!")
这里是从django.http包里导出HttpResponse对象,该对象会针对客户端的请求(request)发送响应(response)。这里响应了Hello,World字符串,也可以响应html文件。
注:每个视图函数至少要有一个参数,通常被叫作request。这是一个触发这个视图、包含当前Web请求信息的
对象,是类django.http.HttpRequest的一个实例。在这个示例中,我们虽然不用request做任何事情,然
而它仍必须是这个视图的第一个参数。
②找到urls.py文件,到入刚刚的views文件,并添加url对象
from views import Hello_World
urlpatterns=[
url(r'^admin/',admin.site.urls),
url(r'^hello/$',Hello_World),
]
第一行和第四行是添加的内容,需要注意的是
1、Hello_World函数并不打上()括号,因为它传递的是这个函数的指针
2、r'^hello/$' 其实是正则表达式,^h是必须以h为开头,/$则是以/为结尾,如果只输入hello的话,可能输入no_hello也会被匹配进去,hello_yo也会被包含进去,通过正则表达式可以很好的配置地址。(另:django会自发的在地址后面增加/)
这时候进入http://127.0.0.1:8000/hello/
就会看到Hello,World!
其实还可以输入html格式的字符串给HttpResponse对象。例如
Hello,World!
就会输出红色的标题HelloWorld
这就是简单的一个应用了(虽然low到不行),但既然可以传递html文件,那就可以通过前端搭建的网页来润色整个django了!
4、自身的不足的总结
不得不说,基础很重要啊,而且学习资料的版本也很重要啊!
①正则表达式的合理使用会减轻很多工作,所以有必要对正则表达式来一次全方位无死角的学习。虽然之前学过一些,但效率极低……
②数据库的深入学习也是有必要的,可以更好地对服务器的数据与客户端(前端)进行交互。当初学javascript的ajax没有个后端真是头大啊。现在django可以更好地辅助学习了
③对python自身的官方库可以说是零基础了,沉迷于各种第三方的库,导致os各种操作的库没有好好学习过,更别谈什么应用在实际项目中了……
呼~时间真快,学习的旅途还很遥远,希望真正地能将学习到的东西运用到生活中,更希望在学习中能磨砺自己。干巴爹~ ~(一∨一)~