AUTH_USER_MODEL = 'APP.UserInfo'
#Django允许你通过修改setting.py文件中的 AUTH_USER_MODEL 设置覆盖默认的User模型,其值引用一个自定义的模型。
MySQL 数据库 的 setting配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'bms', # 要连接的数据库,连接前需要创建好 'USER':'root', # 连接数据库的用户名 'PASSWORD':'', # 连接数据库的密码 'HOST':'127.0.0.1', # 连接主机,默认本级 'PORT':3306 # 端口 默认3306 } }
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level': 'DEBUG', }, } }
还有一种查看sql语句的方式
from app01 import models def add_book(request): ''' 添加表记录 :param request: http请求信息 :return: ''' book_obj = models.Book(title='python',price=123,pub_date='2012-12-12',publish='人民出版社') book_obj.save() from django.db import connection #通过这种方式也能查看执行的sql语句 print(connection.queries) return HttpResponse('ok')
django下载安装
pip install django==1.11.9
配置环境变量:scripts那个路径配置到环境变量里面
创建项目
cmd : django-admin startproject 项目名称(mydjango)
cd mydjango
创建app: django-admin startapp 应用名(app01) python manage.py startapp 应用名
启动项目:python manage.py runserver 127.0.0.1:8001
注册app,settings配置文件中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
# 'app02.apps.App02Config',
'app02',
]
pycharm创建启动项目(...)
第一步:
urls.py里面:
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
第二步:
views.py视图函数,写咱的逻辑
def index(request):
return HttpResponse('app01')
第三步:
templates 文件夹里面创建一个html文件 :index.html
def index(request):
return render(request,'index.html',{'name':'chao'})
index.html
{{ name }}
返回内容的方法:
Httpresponse('xx') 返回文本字符串
render(request,'index.html',{'name':'chao'}) 返回模板文件的,html
url高级用法
url(r'^index/(?P<year>\d+)/(\d+)/', views.index,{'foo':'xxxxx'})
有名分组:
include分发
在应用文件夹里面创建一个自己的urls路由文件
在总的路由文件里面写上下面的内容:
url(r'^app01/',include('app01.urls'))
频率组件 注意4: 如果想打印orm转换过程中的sql,需要在settings中进行如下配置:(学了增加记录的语句在过来配置吧) 复制代码 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } }
from rest_framework.throttling import BaseThrottle,SimpleRateThrottle import time from rest_framework import exceptions visit_record = {} class VisitThrottle(BaseThrottle): # 限制访问时间 VISIT_TIME = 10 VISIT_COUNT = 3 # 定义方法 方法名和参数不能变 def allow_request(self, request, view): # 获取登录主机的id id = request.META.get('REMOTE_ADDR') self.now = time.time() if id not in visit_record: visit_record[id] = [] self.history = visit_record[id] # 限制访问时间 while self.history and self.now - self.history[-1] > self.VISIT_TIME: self.history.pop() # 此时 history中只保存了最近10秒钟的访问记录 if len(self.history) >= self.VISIT_COUNT: return False else: self.history.insert(0, self.now) return True def wait(self): return self.history[-1] + self.VISIT_TIME - self.now 复制代码 在views.py中: from app01.service.throttles import * class BookViewSet(generics.ListCreateAPIView): throttle_classes = [VisitThrottle,] queryset = Book.objects.all() serializer_class = BookSerializers 全局视图throttle REST_FRAMEWORK={ "DEFAULT_AUTHENTICATION_CLASSES":["app01.service.auth.Authentication",], "DEFAULT_PERMISSION_CLASSES":["app01.service.permissions.SVIPPermission",], "DEFAULT_THROTTLE_CLASSES":["app01.service.throttles.VisitThrottle",] } 内置throttle类 在throttles.py修改为: class VisitThrottle(SimpleRateThrottle): scope="visit_rate" def get_cache_key(self, request, view): return self.get_ident(request) settings.py设置: 复制代码 REST_FRAMEWORK={ "DEFAULT_AUTHENTICATION_CLASSES":["app01.service.auth.Authentication",], "DEFAULT_PERMISSION_CLASSES":["app01.service.permissions.SVIPPermission",], "DEFAULT_THROTTLE_CLASSES":["app01.service.throttles.VisitThrottle",], "DEFAULT_THROTTLE_RATES":{ "visit_rate":"5/m", } } 复制代码
django 项目更改ip pycharm 中绿色开始按钮左侧下拉框 打开 edit configuratios 更改配置
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 中的setting 各种配置logging MySQL - Python技术站