《Python编程从入门到实践》是一本非常浅显易懂的Python入门书,对于没有接触过任何编程的人来说,是个不错的开始。
书中的实践部分给出了三个项目,都挺不错的,介绍下:
项目一,外星人入侵。一个小游戏设计,虽然很低级,但如果能跟着坐下来,初学者还是能接触到一些项目的内容,至少自己做出个小程序的成就感是有的。
项目二,数据可视化。强烈推荐必学的东西。学python的朋友应该都知道,python之所以能够大放异彩,与其强大的数据能力是分不开的。数据可视化正是数据处理中很重要的一个环节。好好学这一章,绝对不亏。
项目三,Web应用程序-Django入门。开发一个类似博客的小型网站,虽然可以跟着做下来,但是想真正理解,还是需要很多WEB的基础。
书中的大部分内容,都非常直观易懂,读者只需要跟着看,跟着练,不会有太大问题。
但是项目三例外,由于Django版本的更新(主要是2.0以前的版本和2.0以后版本的区别),导致URL接口的改变,无形中给初学者埋了很多坑。前几天,小编刚刚用Django 2.1把这个项目做了一遍,花了几天时间填坑,现在把书中的坑都一一罗列出来。
- 定义模型中,models的外键方法ForeighKey()参数改变。书中为topic=models.ForeignKey(Topic),在Django2.0以后的版本中会报错,应改为 topic=models.ForeignKey(Topic,on_delete=models.CASAD)
- 映射URL部分变化很大。django.conf.urls中的url方法统一改为了django.urls下的path方法。同时匹配方式也发生了改变。具体来说:
- learning_log中的urls.py添加语句为:path('',include('learning_logs.urls')) 而不是书中的url(r'',include('learning_logs.urls',namespace='learning_logs')),对于users应用的添加,是path('users./',include('users.urls'))而不是书中所写的方式
urlpatterns = [ path('admin/', admin.site.urls), path('users/',include('users.urls')), path('',include('learning_logs.urls')), ]
- learning_logs中的urls.py添加语句如下,同时注意,由于命名空间定义方式的改变,需要在urlpatterns=[]语句前,需要加入语句app_name='learning_logs'来定义命名空间。
app_name='learning_logs' urlpatterns = [ path('',views.index, name='index'), path('topics/',views.topics,name='topics'), path('topic/<int:topic_id>/',views.topic,name='topic'), path('new_topic/',views.new_topic,name='new_topic'), path('new_entry/<int:topic_id>/',views.new_entry,name='new_entry'), path('edit_entry/<int:entry_id>/',views.edit_entry,name='edit_entry') ]
- 在后面创建users的应用时,URL映射也是用同样方式改变:
app_name='users' urlpatterns = [ #登录页面 path('login/',login,{'template_name':'users/login.html'},name='login'), #注销 path('logout/',views.logout_view,name='logout'), path('register/',views.register, name='register'), ]
- learning_log中的urls.py添加语句为:path('',include('learning_logs.urls')) 而不是书中的url(r'',include('learning_logs.urls',namespace='learning_logs')),对于users应用的添加,是path('users./',include('users.urls'))而不是书中所写的方式
- 其他地方没有什么问题,只是跟着写的时候一定要小心。最好是在IDE工具里写,这样会有错误提示。learning_log和learning_logs,user和users, buttons和button都非常容易混淆。 另外,Django官网有个很不错的指导项目,跟着做下来能学不少东西,也能帮助理解。毕竟模仿不是重点,理解才是关键。
更多推荐
Python编程从入门到实践项目3——Web应用程序——Django入门填坑
发布评论