sudo vim /etc/environment
在PATH =之后加上':/usr/local/lib/python2.7/dist-packages/django/bin'
$ django-admin.py startproject my_blog
$ cd my_blog
$ python manage.py startapp article
python manage.py <command> [options] #Django Command
python manange.py -h帮助文档
django-admin.py startproject my_blog #创建项目
python manage.py startapp article #创建app
python manage.py runserver localhost:9000 #启动Django中的开发服务器
二、Models
1. Django Model
- 每一个Django Model都继承自django.db.models.Model
- 在Model当中每一个属性attribute都代表一个database field
- 通过Django Model API可以执行数据库的增删改查, 而不需要写一些数据 库的查询语
2.设置数据库
- Django项目建成后, 默认设置了使用SQLite数据库, 在 my_blog/my_blog/settings.py 中可以查看和修改数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
3.创建models
在my_blog/article/models.py下编写如下程序:
from django.db import models
class Article(models.Model) :
title = models.CharField(max_length = 100)
category = models.CharField(max_length = 50, blank = True)
date_time = models.DateTimeField(auto_now_add = True)
content = models.TextField(blank = True, null = True)
def str(self) :
return self.title
class Meta: #按时间下降排序
ordering = ['-date_time']
###4.同步数据库
>python manage.py migrate #命令行运行该命令 提示数据库有改动,需要执行 python manage.py makemigrations 来是数据库生效,然后在执行python manage.py migrate
###5.Django Shell
>Django的 CURD 操作。
执行 python manage.py shell 进入命令行操作。
Article.objects.create(title = 'Hello World', category = 'Python', content = 'Let us add a database item')
Article.objects.all()
Article.objects.get(id = 1)
Article.objects.filter(title='Django Blog Study')
Article.objects.order_by("title")
Article.objects.filter(title__contains='Django')[0]
等等
##三. Admin
###1.Admin简介
>Django有一个优秀的特性, 内置了Django admin后台管理界面, 方便管理者进行添加和删除网站的内容.
可以管理该project下的项目。
###2.设置Admin
>新建的项目系统已经为我们设置好了后台管理功能
可以在my_blog/my_blog/settings.py中查看
INSTALLED_APPS = (
'django.contrib.admin', #默认添加后台管理功能
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'article'
)
>同时也已经添加了进入后台管理的url, 可以在my_blog/my_blog/urls.py中查看
-- coding: utf-8 --
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
# Examples:
# url(r'^$', 'my_blog.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', admin.site.urls), #可以使用设置好的url进入网站后台
]
###3.创建超级用户
>使用如下命令账号创建超级用户(如果使用了python manage.py syncdb会要求你创建一个超级用户, 该命令已经过时, 不再推荐使用)
python manage.py createsuperuser
Username (leave blank to use 'test'): root
Email address:
Password:
Password (again):
Superuser created successfully.
输入用户名, 邮箱, 密码就能够创建一个超级用户
##四. Views和URL
###1.网页程序的逻辑
>request进来->从服务器获取数据->处理数据->把网页呈现出来
url设置相当于客户端向服务器发出request请求的入口, 并用来指明要调用的程序逻辑
views用来处理程序逻辑, 然后呈现到template(一般为GET方法, POST方法略有不同)
template一般为html+CSS的形式, 主要是呈现给用户的表现形式
###2.简单Django Views和URL
>Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse,
那么开始在my_blog/article/views.py中编写简单的逻辑
现在你的views.py应该是这样
from django.shortcuts import render
from django.http import HttpResponse
Create your views here.
def home(request):
return HttpResponse("Hello World, Django")
>那么如何使这个逻辑在http请求进入时, 被调用呢, 这里需要在my_blog/my_blog/urls.py中进行url设置
from django.conf.urls import url
from django.contrib import admin
from article import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.home),
]
> url()函数有四个参数, 两个是必须的:regex和view, 两个可选的:kwargs和name
>>* regex是regular expression的简写,这是字符串中的模式匹配的一种语法, Django 将请求的URL从上至下依次匹配列表中的正则表达式,直到匹配到一个为止。
* view当 Django匹配了一个正则表达式就会调用指定的view逻辑, 上面代码中会调用article/views.py中的home函数
* kwargs任意关键字参数可传一个字典至目标view name命名你的 URL, 使url在 Django 的其他地方使用, 特别是在模板中