day 1
安装django
sudo pip install django
创建一个项目
django-admin.py startproject myProject
启动服务器
python manage.py runserver 8000
创建一个app
python manage.py startapp app1
day2
同步数据库
python manage.py syncdb
以root用户登录mysql
mysql -u root -p
在mysql中创建Django 项目的数据库
create database jangodb default charset=utf8;
在mysql中为Django 项目创建独立用户 并授予相关权限
grant select, insert, update, delete, create, drop , index, alter, create temporary tables, lock tables on jangodb.* to 'user'@'localhost' identified by 'password';
在setting.py中配置数据库账号信息
<code>
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'jangodb',
'USER': 'user',
'PASSWORD': 'password',
'HOST':'localhost',
'PORT':'3306',
}
}
</code>
day3
配置模版搜索路径
打开settings.py
将系统默认模版注释掉 新加入
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, '模版路径'), //相对于根目录
)
使用模版 在views.py 中
from django.shortcuts import render
def templay(request):
context = {}
context['label'] = 'Hello World!'
return render(request, 'templay.html', context)
//以上代码 会去找模版路径下的templay.html文件 并将label 变量替换为 Hello World!
常用的模版标签
被 {{}} 包围的是变量 ,被{%%}包围的是块标签
块标签里边可以包含 for 或 if else 语句
eg.
{% for item in item_list %}
{{item}}
{% endfor %}
{% if %}
{% elseif %}
{% endif %}
模版的继承
{% extend 父级模版 %}
day4
get 和 post
获取到request 后 可以 通过 GET 或 POST获取数据
get :
<code>def investigate(request):
rlt = request.GET['staff']
return HttpResponse(rlt)</code>
post:
<code>def investigate(request):
ctx ={}
ctx.update(csrf(request))
if request.POST:
ctx['rlt'] = request.POST['staff']
return render(request, "investigate.html", ctx)</code>
将收到的数据存储到数据库
<code>submitted = request.POST['staff']
new_record = Character(name = submitted)
new_record.save()</code>
day5
django 提供了一个默认的可以管理数据库的app (django.contrib.admin)
在myside/setting.py 中的Installed_apps可以找到
访问127.0.0.1:8000/admin 可以访问到这个界面
用户名密码 可以通过
<code>python mange.py createsuperuser </code>
来创建一个超级用户登录进去来管理数据
为了让admin 来管理这个界面 需要将模型注册到admin
在admin.py 中导入 模型类
<code>from site.models import model1</code>
将模型数据注册到admin
<code>admin.site.register(model1)</code>
如果有多个模型 可以这样写
<code>admin.site.register([model1,model2])</code>
自定义界面
比如对某个属性a 进行管理 可以造一个aAdmin 类 并将他们一起注册
<code>class aAdmin:(admin.ModelAdmin):
fields = ('property1', 'property2')
admin.site.register(a, aAdmin)
</code>
搜索
在aAdmin 类中加入一句
<code>search_fields = ('name's)</code>
day6
continue