导读:本篇文章首席CTO笔记来给大家介绍有关django如何app攻击的相关内容,希望对大家有所帮助,一起来看看吧。
django 一个项目多个App项目搭建
django可以在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户
本次测试以python 2.7
其次分别建立相应的App模块:todo,oa,web
如图所示:
在以上的配置中导入了include对配置进行包装
同时导入了index函数,index在todo,oa,web中的views文件分别建立
同时指定了一个打开的默认首页,即web app下的index /pre
此时运行程序,页面如图所示
如果此时输入的路径为localhost:8000/web/inex,
localhost:8000/oa/inex,
localhost:8000/toto/index将得到不同app的展现,
如何利用Django-auth做用户认证
首先,让我们开始创建项目和APP,前面我也很详细的说明了如何创建项目和APP。
创建数据库,和相关用户的权限。
root@CD-FTP-VPN:/opt/jastme# tree
.
|-- jastme
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- wsgi.py
| `-- wsgi.pyc
|-- login
| |-- admin.py
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- tests.py
| |-- views.py
| `-- views.pyc
|-- manage.py
`-- start.sh
2 directories, 18 files
root@CD-FTP-VPN:/opt/jastme#
使用python manage.py syncdb 来创建一个叫jastme,密码为jastme的超级用户。我们可以用Django-admin来管理这些用户。
首先看看setting.py
root@CD-FTP-VPN:/opt/jastme# more jastme/settings.py
\"\"\"
Django settings for jastme project.
For more information on this file, see
For the full list of settings and their values, see
\"\"\"
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# Quick-start development settings - unsuitable for production
# See
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = \'r!1=i^3qhwglr(zf*9n*ii!b_oy2h()ics(6(de3wuo0-oh8h\'
# SECURITY WARNING: don\'t run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = (
# \'django.contrib.admin\', #注释掉admin
\'django.contrib.auth\',
\'django.contrib.contenttypes\',
\'django.contrib.sessions\',
\'django.contrib.messages\',
\'django.contrib.staticfiles\',
\'login\',
)
MIDDLEWARE_CLASSES = (
\'django.contrib.sessions.middleware.SessionMiddleware\',
\'django.middleware.common.CommonMiddleware\',
# \'django.middleware.csrf.CsrfViewMiddleware\', #这个中间件是防止跨站攻击的。有意思的朋友可以去搜索下。
\'django.contrib.auth.middleware.AuthenticationMiddleware\',
\'django.contrib.auth.middleware.SessionAuthenticationMiddleware\',
\'django.contrib.messages.middleware.MessageMiddleware\',
\'django.middleware.clickjacking.XFrameOptionsMiddleware\',
)
ROOT_URLCONF = \'jastme.urls\'
WSGI_APPLICATION = \'jastme.wsgi.application\'
# Database
#
DATABASES = { #数据库的相关配置
\'default\': {
\'ENGINE\': \'django.db.backends.mysql\',
\'NAME\':\'jastme\',
\'USER\':\'jastme\',
\'PASSWORD\':\'jastme\',
\'HOST\':\'localhost\',
\'PORT\':\'3306\',
}
}
# Internationalization
#
LANGUAGE_CODE = \'en-us\'
TIME_ZONE = \'Asia/Shanghai\'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
#
STATIC_URL = \'/static/\'
TEMPLATE_DIRS =( #模板的路径
\'/var/www/jastme/\',
)
views.py
root@CD-FTP-VPN:/opt/jastme# more login/views.py
from django.shortcuts import render
from django.contrib import auth
# Create your views here.
from django.shortcuts import render_to_response
from django.contrib.auth import authenticate, login
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse,HttpResponseRedirect
from django.contrib.auth.decorators import login_required
def my_login(request): #我们自定义一个函数,这个函数名字一定不要写成login,因为Django有有login模块。
if request.method == \'POST\': #我们使用POST的方法来获取从HTML传递过来的表单内容
username = request.POST[\'username\'] #获取账号和密码
password = request.POST[\'password\']
user = authenticate(username=username, password=password) #我们用user来实例化 authenticate(username=username, password=password)
if user is not None: #用户名不为空
if user.is_active: #为激活用户
login(request, user) #调用django.contrib.auth中的login函数,可以具体去看看源码
return HttpResponseRedirect(\'/main\') #登陆成功就重定向到主页
else:
login_error = \'login error.\'
return render_to_response(\'login.html\', {\'login_error\' : login_error, \'is_display\' : \'display:block\'}) #失败则返回登陆页面
return render_to_response(\'login.html\', {\'is_display\' : \'display:none\'}) #同理
@login_required #调用了这个修饰器,就可以让这个页面在成功登陆后才能访问
def main(request):
return HttpResponse(\'login sucess\') #直接返回这个字符串
再看看urls.py
root@CD-FTP-VPN:/opt/jastme# more jastme/urls.py
from django.conf.urls import patterns, include, url
#from django.contrib import admin
from login.views import my_login,main #这里是我们导入的项目中的views.py中的模块,就是我们自己写的函数
#from django.contrib.auth.views import login, logout
urlpatterns = patterns(\'\',
# Examples:
# url(r\'^$\', \'jastme.views.home\', name=\'home\'),
# url(r\'^blog/\', include(\'blog.urls\')),
# url(r\'^admin/\', include(admin.site.urls)),
(r\'^main/$\',main),
(r\'^login/$\',my_login),
)
login.html
root@CD-FTP-VPN:/var/www/jastme# pwd
/var/www/jastme
root@CD-FTP-VPN:/var/www/jastme# ls
login.html
form action=\"\" method=\"POST\" #在此页面以POST的方式来提交参数
input type=text name=\"username\"
input type=text name=\"password\"
input type=submit value=\"send\"
/form
使用Django常见了一个app,并连上了一个数据库,对这个数据库进行增删改查的代码应该编写在哪个文件中?
没有固定的要求,可以自己写一个文件统一管理,也可以在多个文件中随用的时候随写。
一旦建立好数据模型,Django 会自动为你生成一套数据库抽象的API,可以让你创建、检索、更新和删除对象,存放在models.py中。
model的更多操作可以参考。
django适不适合做手机app后台
1、首先app后台和语言,框架没有关系,适合不适合要看开发者对这个东西的熟悉程度。
2、django作为python中一个比较完整的框架,包括一个完整项目开发所需的大部分功能,所以使用django可以快速完成项目,当然也包括app后台服务器代码。
结语:以上就是首席CTO笔记为大家整理的关于django如何app攻击的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何app攻击的相关内容别忘了在本站进行查找喔。
以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!
版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。