Django学习笔记

#实例化django项目 在项目目录下执行
django-admin startproject webscan

#创建app项目 /webscan/目录执行
python manage.py startapp appscan

#加载app 在/webscan/webscan/settings.py
INSTALL_APPS中添加 appscan

#默认静态文件配置
STATIC_URL = ‘/static/’ #创建该目录 mkdir

#settings.py文件头部配置,防止中文出错、默认以ASCII码保存的,换为UTF-8
#coding=utf-8
## 配置数据库信息,配置之前使用phpmyadmin创建webscan数据库
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘webscan’,
‘USER’: ‘root’,
‘PASSWORD’: ‘root’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: ‘3306’,
}
}

#初始化数据库
python manage.py syncdb #新版的是用 migrate

#第一次会提示初始化超级管理员
You have installed Django’s auth system, and don’t have any superusers defined.
Would you like to create one now? (yes/no): yes
#输入yes,账户,密码…
#如果没有提示则用 python manage.py createsuperuser 命令创建账户

#更新数据库
python manage.py migrate

#定义视图函数~/appdemo/views.py
# coding = utf-8
from django.http import HttpResponse #区分大小写…
def index(request):
return HttpResponse(u’hello world!’)

#定义访问url ~/app_pro/app_pro
from appdemo import views as appdemo_views # 引入视图
#配置url(正则,模块)
url(r’^$’,appdemo_views.index),

#启动项目
root@0535coder:~/mysite# ./manage.py runserver
#这种启动方式,可以要局域网访问
root@0535coder:~/mysite# ./manage.py runserver 0.0.0.0:8000

#自定义模块的URL路由规则
url(r’^xxs/’, calc_views.add, name=’xxs’)
{% url ‘xxs’ %}#模版中获取

#get方式获取一个参数
request.GET[‘xxs’]

#在函数传参,获取参数
def xxs(request, xxs1,xxs2):
return HttpResponse(xxs1)

#获取URL模块 传参,第一个参数与urls.py中的patterns配置关联
url(r’^xxs/$’,appdemo_views.xxs,name = ‘xxs’),
reverse(‘xxs’, args=(alert0,alert1))

#页面模版中调用url
#不带参数的:
{% url ‘name’ %}
#带参数的:参数可以是变量名
{% url ‘name’ 参数 %}

#重定向方法
HttpResponseRedirect()

#模版渲染
from django.shortcuts import render
#在app目录下新建模版路径templates,默认配置下,Django 的模板系统会自动找到app下面的templates文件夹中的模板文件。
#mysite/appdemo/views.py
def home(request):
return render(request,”home.html”)
#mysite/mysite/urls.py
url(r’^home/’,appdemo_views.home),
#mysite/appdemo/templates/home.html

#默认标题
{% block title %}默认标题{% endblock %}

#模版文件包含
{% include ‘header.html’ %}

#默认内容
{% block content %}

这里是默认内容,所有继承自这个模板的,如果不覆盖就显示这里的默认内容。

{% endblock %}

#继承页面
{% extends ‘base.html’ %}

#模版标签
def home(request):
tag = u”thinkphp -> assign!”
return render(request,’home.html’,{‘tag’:tag})
引用{{tag}}

#模版中获取当前时间
from datetime import datetime
def home(request):
tag = u”thinkphp -> assign!”
now = datetime.now().strftime(“%Y-%m-%d %H:%I:%S”)
return render(request,’home.html’,{‘tag’:tag,’now’:now})
#return render(request,”home.html”)

#app项目静态文件
放入app目录下的static文件件下,访问url/static/…

#urls.py配置name属性,模版访问url方式
不带参数的:
{% url ‘name’ %}
带参数的:参数可以是变量名
{% url ‘name’ 参数 %}

#数据库操作
from 模型名models import *
#查询所有数据
db = 模型名.objects.all()
#增加记录集
db = 模型名(字段1=”1″,字段2=”2″)
db.save()
#排序orderby
db = 模型名.objects.all()。order_by(“排序字段,升序”)
db = 模型名.objects.all()。order_by(“-排序字段,降序”)
#更新记录集
db = 模型名.objects.get(字段名=’hello world’)
db.字段名= “this is html!”
#删除记录集
db = 模型名.objects.get(字段名=’hello world’)
db.delete()

# SECURITY WARNING: don’t run with debug turned on in production!
# 项目部署时,设置为False,禁止开启调试模式
DEBUG = True

#######django遇到问题汇总#######

#web页面打印变量
from django.http import HttpResponse
使用 return HttpResponse(“qqqqq”) 即可打印到页面中去

#使用settings.py中的常量
from django.conf import settings

#使用django shell模式调试
python manage.py shell

#定义异常404页面
try:
pass
except Question.DoesNotExist:
raise Http404(“test does not exist”)

#增加同步数据库
python manage.py makemigrations
python manage.py migrate

# 最后需要本本地的扩展打包下:
Django==1.10.5
MySQL-python==1.2.5
backports-abc==0.5
beautifulsoup4==4.5.3
certifi==2016.9.26
lxml==3.6.0
pymongo==3.4.0
requests==2.12.3
singledispatch==3.4.0.3
six==1.10.0
tornado==4.4.2

# 打包命令
# pip freeze > requirements.txt

# 安装命令
# pip install -r requirements.txt

#使用admin模块

python manage.py createsuperuser #创建

#注册数据库表 到admin.py 后台
from appscan.models import spider
admin.site.register(spider)

#关闭debug模式时不加载静态资源处理
#python manage.py runserver 0.0.0.0:80 –insecure

发表评论

电子邮件地址不会被公开。 必填项已用*标注