Django入门

1 Django安装和配置

为避免Python版本冲突,依然使用visual env来开发,安装Django仅需要一条pip命令即可搞定pip install django

查看安装版本Django-1.10.3-final-0

~$ python
>>> import django
>>> django.VERSION
(1, 10, 3, u'final', 0)

Django从项目搭建,到ORM,再到服务的部署,集成了一套自己的shell命令,第一个要用到的命令就是django-admin.py,让我们来看看Django都有哪些功能或者命令

  1. django-admin check [app_label [app_label ...]]
    检查项目完整性
  1. django-admin compilemessages
    把.po文件编译成.mo
  2. django-admin createcachetable
    为数据库创建缓存表
  3. django-admin dbshell
    进入到数据库的命令行,何种数据库依据setting文件的ENGINE选项
  4. django-admin diffsettings
    查看setting文件的差异
  5. django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
    导出数据库数据,可以导出成为json文件
  6. django-admin flush
    清空数据库数据
  7. django-admin inspectdb [table [table ...]]
    指定某个数据库表,生成models.py文件
  8. django-admin loaddata fixture [fixture ...]
    导入数据库文件到数据库中,可以从json文件导入
  9. django-admin makemessages
    创建国际化文件
  10. django-admin makemigrations [app_label [app_label ...]]
    按照指定app的model生成数据库同步文件,一般放在app下面的migrations文件夹
  11. django-admin migrate [app_label] [migration_name]
    同步Django模型和数据库
  12. django-admin runserver [addrport]
    启动Django自带的服务器,需指定IP和端口号,默认为127.0.0.1:8000
  13. django-admin shell
    --interface {ipython,bpython,python}, -i {ipython,bpython,python}
    进入Python交互界面,例如Python
  14. django-admin showmigrations [app_label [app_label ...]]
    查看model和数据库交互的同步脚本
  15. django-admin sqlflush
    查看flush命令的sql脚本
  16. django-admin sqlmigrate app_label migration_name
    查看migrate操作的sql脚本
  17. django-admin sqlsequencereset app_label [app_label ...]
    查看对指定app进行sequence重置的sql脚本
  18. django-admin squashmigrations app_label [start_migration_name] migration_name
  19. django-admin startapp name [directory]
    创建app,可以自定义文件夹位置,默认创建一系列的models.py,views.py文件
  20. django-admin startproject name [directory]
    创建Django项目工程
  21. django-admin test [test_label [test_label ...]]
    执行app的测试程序
  22. django-admin testserver [fixture [fixture ...]]
    启动服务器,对导入服务器的数据进行测试
  23. python manage.py changepassword [<username>]
    修改后台管理员密码
  24. python manage.py createsuperuser
    创建管理员账户

manage.py存在于每个Django工程根目录下面,可以在工程目录下直接使用manage.py命令,代替django-admin

2 创建新项目

DjangoProj $ django-admin startproject MyBlog
DjangoProj $ cd MyBlog

MyBlog $ tree

工程目录结构

工程根目录下会有一个同名的目录,这个目录存放的是一些全局的配置文件,每一个都很重要,settings.py存放app、数据源、模板以及中间件等配置信息,urls.py存放的是整个网站url信息,实现接收响应,wsgi.py配合服务器的配置。

3 创建一个app

MyBlog $ python manage.py startup welcome

app目录结构

工程目录下多了一个文件夹welcome,这时候可以使用我们熟悉的pycharm来编辑代码了

  • 首先编辑app目录下的视图文件views.py
# views.py
# -*- coding:utf-8 -*-
from django.http import HttpResponse

def index(request):
    return HttpResponse(u'欢迎!')

request和response这个不陌生吧,这个程序有点类似Java里面的servlet。

  • 编辑与视图关联的urls.py文件,这个文件起到路由转发的作用,其本身就是管理一个列表
# urls.py
# -*- coding:utf-8 -*-
from django.conf.urls import url
from django.contrib import admin
from welcome import views as welcome_views

urlpatterns = [
    url(r'^admin/', admin.site.urls),    #管理员页面入口
    url(r'^$', welcome_views.index),     #网站首页

]

  • 最后把新创建的app注册到settings.py中
# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'welcome'
]

运行内置服务器即可构建最简单的网站

MyBlog $ python manage.py runserver 127.0.0.1:8080

欢迎首页

2 使用数据库并实现MVC

确保MySQL客户端已安装,如果没加入paths可以用以下方法

  1. 针对全局用户
    ~$ sudo touch /etc/paths.d/mysql
    root下面编辑文件,加入路径/usr/local/mysql/bin
  2. 针对单个用户
    ~$ vim ~/.bash_profile
    加入export PATH=/usr/local/mysql/bin:$PATH并source使其生效
# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'welcome',
    'BlogUser'
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # mysql.connector.django
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容