当前位置: 首页 > news >正文

提供微商城网站建设wordpress被js挂马

提供微商城网站建设,wordpress被js挂马,如何用网络营销推广,中国建设银行网站地图本章简介#xff1a; Django 简介Django 基本配置Django urlDjango viewDjango 模板语言Django Form Django 简介 Django是一个开放源代码的Web应用框架#xff0c;由Python写成。采用了MVC的软件设计模式#xff0c;即模型M#xff0c;视图V和控制器C。它最初是被开发来…本章简介 Django 简介Django 基本配置Django urlDjango viewDjango 模板语言Django Form Django 简介 Django是一个开放源代码的Web应用框架由Python写成。采用了MVC的软件设计模式即模型M视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”敏捷开发和DRY法则Don’t Repeat Yourself。在Django中Python被普遍使用甚至包括配置文件和数据模型。 优点 完美的文档Django的成功我觉得很大一部分原因要归功于Django近乎完美的官方文档包括Djangobook。全套的解决方案Django象Rails一样提供全套的解决方案full-stackframework batteries included基本要什么有什么比如cache、session、feed、orm、geo、auth而且全部Django自己造开发网站应手的工具Django基本都给你做好了因此开发效率是不用说的出了问题也算好找不在你的代码里就在Django的源码里。强大的URL路由配置Django让你可以设计出非常优雅的URL在Django里你基本可以跟丑陋的GET参数说拜拜。自助管理后台admin interface是Django里比较吸引眼球的一项contrib让你几乎不用写一行代码就拥有一个完整的后台管理界面。 缺点 系统紧耦合如果你觉得Django内置的某项功能不是很好想用喜欢的第三方库来代替是很难的比如下面将要说的ORM、Template。要在Django里用SQLAlchemy或Mako几乎是不可能即使打了一些补丁用上了也会让你觉得非常非常别扭。Django自带的ORM远不如SQLAlchemy强大除了在Django这一亩三分地SQLAlchemy是Python世界里事实上的ORM标准其它框架都支持SQLAlchemy了唯独Django仍然坚持自己的那一套。Template功能比较弱不能插入Python代码要写复杂一点的逻辑需要另外用Python实现Tag或Filter。 Django流程介绍 Django采用MTV模式。所谓MVC就是把web应用分为模型(M),控制器©,视图(V)三层他们之间以一种插件似的松耦合的方式连接在一起。模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面)控制器©接受用户的输入调用模型和视图完成用户的请求。 Django的MTV模式本质上与MVC模式没有什么差别也是各组件之间为了保持松耦合关系只是定义上有些许不同Django的MTV分别代表Model(模型)负责业务对象与数据库的对象(ORM)Template(模版)负责如何把页面展示给用户View(视图)负责业务逻辑并在适当的时候调用Model和Template此外Django还有一个url分发器它的作用是将一个个URL的页面请求分发给不同的view处理view再调用相应的Model和Template 接下来就挨个说说每个模块来构成的Django Django 基本配置 一、创建django程序 终端命令django-admin startproject sitenameIDE创建Django程序时本质上都是自动执行上述命令 1、终端命令 # 查看django版本 $ python -m django --version# 创建项目,名为mysite $ django-admin startproject mysite# 启动django $ python manage.py runserver $ python manage.py runserver 8080 $ python manage.py runserver 0.0.0.0:8000# 创建应用程序确保和 manage.py 是同一目录 $ python manage.py startapp polls# 运行创造模型变化迁移 $ python manage.py makemigrations# 运行应用模型变化到数据库 $ python manage.py migrate# admin创建管理员用户 $ python manage.py createsuperuser2、IDE创建PyCharm为例 File -- New Project -- 选择Django -- Appliocation Name 创建app二、生成目录结构如下 三、配置文件(settings) 1、刚创建django project时开始写入程序第一步先要在配置文件中注册app INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,app01, # 注册app ]2、数据库连接 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME:数据库名,USER: root,PASSWORD: xxx,HOST: ,PORT: ,} }注由于Django内部连接MySQL时使用的是MySQLdb模块而python3中还无此模块所以需要使用pymysql来代替 如下设置放置的与project同名的配置的 init.py文件中 import pymysql pymysql.install_as_MySQLdb() 3、静态文件配置 STATICFILES_DIRS (os.path.join(BASE_DIR, static),)注需要在project下创建static文件夹 Django url URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表你就是以这种方式告诉Django对于这个URL调用这段代码对于那个URL调用那段代码。URL的家在是从配置文件中开始。 1、先写一个简单的世界你好吧 url文件 from django.conf.urls import url from django.contrib import admin from app01 import viewsurlpatterns [url(r^admin/, admin.site.urls),url(r^index/, views.index), ]views文件 from django.shortcuts import render # Create your views here.def index(request):return render(request,index.html)templates文件夹下新建index.html文件 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body h1Hello 张岩林/h1 /body /html2、路由正则 urlpatterns [url(r ^index/(?Ppager\d*)/,views.index,{id:333}), ]注Django支持路由正则功能同时想拿到值可以在view中的函数中把相对应得明明写入即可接收到{‘id’:333}传入函数通过key可以取到值 views中index函数 from django.shortcuts import render # Create your views here.def index(request,pager,id):print(pager,id)return render(request,index.html)由此看出正则这块可以写分页功能 3、app对路由规则进行一次分类 需要在app01中新建一个urls文件然后写入project下urls配置 from django.conf.urls import url from django.contrib import admin from app01 import views from django.conf.urls import includeurlpatterns [url(r^admin/, admin.site.urls),url(r^buy/, include(app01.urls)), ]app01下urls配置 #!/usr/bin/env python # -*- coding:utf-8 -*-from django.conf.urls import url from django.contrib import admin from app01 import viewsurlpatterns [url(r^admin/, admin.site.urls),url(r^index/, views.index), ]访问url如下 http://127.0.0.1/buy/index/django中的路由系统和其他语言的框架有所不同在django中每一个请求的url都要有一条路由映射这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射从而是路由系统变得简洁。 Django views http请求中产生两个核心对象 http请求HttpRequest对象 http响应HttpResponse对象 一、HttpRequest对象 # 获取提交方式 request.method if request.method POST:times time.time()return render(request,index.html)# 获取前端post提交的数据 request.POST.get(username)# 获取域名后路径 get_full_path() 例http://127.0.0.1:8000/index33/?name123 ,req.get_full_path()得到的结果就是/index33/?name123二、HttpResponse对象 def test(request):# 往前端写入字符串return HttpResponse(xxx) # 跳转路径return redirect(/index/)# 渲染HTML文件两种方式return render(reuqest, test.html) return render_to_response(text.html)# 可以直接将函数中所有的变量传给模板return render(reuqest, test.html,locals()) # 可以根据通过字典的方式往前端传值取值输入key即可return render(reuqest, test.html,{zhang:好帅}) Django 模板语言 1、if/else {% if %}标签计算一个变量值如果是“true”即它存在、不为空并且不是false的boolean值 系统则会显示{% if %}和{% endif %}间的所有内容 {% if today_is_weekend %} pWelcome to the weekend!/p {% else %} pGet back to work./p {% endif %} 2、{% for %} 标签允许你按顺序遍历一个序列中的各个元素Python的for语句语法为for X in YX是用来遍历Y的变量 每次循环模板系统都会渲染{% for %}和{% endfor %}之间的所有内容 例如显示给定athlete_list变量来显示athlete列表 ul {% for athlete in athlete_list %} li{{ athlete.name }}/li {% endfor %} /ul forloop.counter # for循环个数 forloop.first # for循环第一个值 forloop.last  # for循环最后一个值3、母版子版继承导入 母板{% block title %}{% endblock % } 子板{% extends base.html %}{% block title %}{% endblock %}4、自定义模板simple_tag a、在app中创建templatetags模块 b、创建任意 .py 文件如xx.py #!/usr/bin/env python #coding:utf-8 from django import template from django.utils.safestring import mark_safe from django.template.base import resolve_variable, Node, TemplateSyntaxErrorregister template.Library()register.simple_tag def my_simple_time(v1,v2,v3):return v1 v2 v3register.simple_tag def my_input(id,arg):result input typetext id%s class%s / %(id,arg,)return mark_safe(result)注事例中变量名不能变必须是固定写法 c、在使用自定义simple_tag的html文件中导入之前创建的 xx.py 文件名 {% load xx %}d、使用simple_tag {% my_simple_time 1 2 3%} {% my_input id_username hide%}Django Form 有时候我们需要在前台用 get 或 post 方法提交一些数据所以自己写一个网页用到 html 表单的知识。 一、基础form提交 比如写一个计算 a和 b 之和的简单应用网页上这么写 !DOCTYPE html html body p请输入两个数字/pform action/add/ methodPOSTinput typetext namea input typetext nameb input typesubmit value提交 /form /body /html把这些代码保存成一个index.html放在 templates 文件夹中。 网页的值传到服务器是通过 或 标签中的 name 属性来传递的在服务器端这么接收 from django.http import HttpResponse from django.shortcuts import renderdef index(request):return render(request, index.html)def add(request):a request.POST.GET(a)b request.POST.GET(b)a int(a)b int(b)return HttpResponse(str(ab))但是比如用户输入的不是数字而是字母就出错了还有就是提交后再回来已经输入的数据也会没了。 当然如果我们手动将输入之后的数据在 views 中都获取到再传递到网页这样是可行的但是很不方便所以 Django 提供了更简单易用的 forms 来解决验证等这一系列的问题。 二、Django Forms应用 1、简单案例一 在app01下新建一个文件forms.py from django import formsclass AddForm(forms.Form):a forms.IntegerField()b forms.IntegerField()我们的视图函数 views.py 中 #!/usr/bin/env python # -*- coding:utf-8 -*- from django.shortcuts import render,HttpResponse from app01.forms import AddFormdef index(request):if request.method POST:# 当提交表单时# form 包含提交的数据form AddForm(request.POST) # 如果提交的数据合法if form.is_valid():a form.cleaned_data[a]b form.cleaned_data[b]return HttpResponse(str(int(a) int(b)))# 当正常访问时else:form AddForm()return render(request, index.html, {form: form})对应的模板文件 index.html form methodpost {% csrf_token %} {{ form }} input typesubmit value提交 /form这个简单的案例大家不知道有没有看出其中的蹊跷呢仔细观察form类给我做了验证用户输入错了会弹出报错信息 2、进阶案例二 models.py from django.db import models# Create your models here.class BookType(models.Model):caption models.CharField(max_length64)class Book(models.Model):name models.CharField(max_length64)pages models.IntegerField()price models.DecimalField(max_digits10,decimal_places2)pubdate models.DateField()book_type models.ForeignKey(BookType)views.py #!/usr/bin/env python # -*- coding:utf-8 -*- from django.shortcuts import render from app01.forms import Form1def form1(request):if request.method POST:# 获取请求内容做验证f Form1(request.POST)if f.is_valid():print(f.cleaned_data)else:print(type(f.errors),f.errors)return render(request,form1.html,{error:f.errors,form:f})else:f Form1()return render(request,form1.html,{form:f})在app01下新建一个文件forms.py #!/usr/bin/env python # -*- coding:utf-8 -*-from django import forms from app01 import modelsclass Form1(forms.Form):# 用户名,给该标签添加一个class属性还有空值的报错信息修改user forms.CharField(widgetforms.TextInput(attrs{class: c1}),error_messages{required: 用户名不能为空},)# 密码定义最大长度和最小长度pwd forms.CharField(max_length4,min_length2)# 邮箱定义错误信息required为空值错误信息invalid为邮箱匹配错误信息email forms.EmailField(error_messages{required: 邮箱不能为空, invalid: 邮箱格式错误})# 生成多行文本编辑框memo forms.CharField(widgetforms.Textarea())# 下拉菜单实时更新数据库user_type_choice models.BookType.objects.values_list(id,caption)book_type forms.CharField(widgetforms.widgets.Select(choicesuser_type_choice,attrs{class: form-control}))def __init__(self,*args, **kwargs):super(Form1, self).__init__(*args, **kwargs)self.fields[book_type] forms.CharField(widgetforms.widgets.Select(choicesmodels.BookType.objects.values_list(id,caption),attrs{class: form-control}))前端form1.html !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlestyle.input-group{position: relative;padding: 20px;width: 250px;}.input-group input{width: 200px;display: inline-block;}.input-group span{display: inline-block;position: absolute;height: 12px;font-size: 8px;border: 1px solid red;background-color: darksalmon;color: white;top: 41px;left: 20px;width: 202px;}/style /head bodyform action/form1/ methodpostdiv classinput-group{{ form.user }}{% if error.user.0 %}span{{ error.user.0 }}/span{% endif %}/divdiv classinput-group{{ form.pwd }}{% if error.pwd.0 %}span{{ error.pwd.0 }}/span{% endif %}/divdiv classinput-group{{ form.email }}{% if error.email.0 %}span{{ error.email.0 }}/span{% endif %}/divdiv classinput-group{{ form.memo }}{% if error.memo.0 %}span{{ error.memo.0 }}/span{% endif %}/divdiv classinput-group{{ form.book_type }}{% if error.book_type.0 %}span{{ error.book_type.0 }}/span{% endif %}/divdivinput typesubmit value提交/div /form/body /htmlView Code
http://www.yutouwan.com/news/306978/

相关文章:

  • 芜湖网站开发茂名网站优化
  • 网站前台的功能模块做别人一样的网站模板
  • 北京公司公示在哪个网站深圳市建设工程造价管理站官网
  • 同时在线上万人的网站需要什么配置云服务器软件开发模型有哪些
  • 给公司做网站 图片倾权北京怀柔网站制作
  • 镇江网站建设一般多少钱未来做哪个网站能致富
  • 网站建设优惠券免费网站源码博客
  • 微商手机网站制作公司哪家好龙湖地产 网站建设
  • 怎么做签到网站成都建站哪家好
  • 网站如何推广引流店铺名称设计logo设计
  • wordpress模板云端青岛自动seo
  • 无锡专业网站推广wordpress设置收费下载
  • 网站首页效果图怎么设计网站备案期间 搜索引擎
  • 灰系网站榆林网站建设vs0912
  • 网站设计尺寸大小公司网站建设岗位
  • 一级域名和二级域名做两个网站自己怎么做视频网站
  • 媒体网站开发小型网站开发用什么语言
  • 兰州优化网站推广南磨房网站建设公司
  • 学习php做毕设网站方向wordpress无法创建文件
  • 网站建设专业名词电商商城平台定制
  • 商务网站建设与维护 ppt一键生成微信小程序
  • 企业网站开发需求详细文档内容网站设计范例
  • 廊坊微信网站建设做网站聊城
  • 网站名称查询做可视化图表的网站
  • 传奇服务器网站如何建设莱芜找工作网站
  • 手机网站收录网站前端工资
  • 湖南免费网站建设证书查询入口官网
  • 网站建设所面临的问题网站搜不出来怎么办
  • 黄州区精神文明建设网站南平抖音搜索排名seo软件
  • 温州网站制作方案ui设计师是青春饭吗