Python Django框架 2019(07)

前面的文章研究了Django最主要的几个方面:数据库,模板,动态生成页面等。但都是使用python manage.py runserver来运行服务器。这是一个实验性的web服务器,不适用于正常的站点运行。我们需要一个可以稳定而持续的服务器。这个服务器负责监听http端口,将收到的请求交给Django处理,将Django的回复发还给客户端。

这样的持续性服务器可以有很多选择,比如apache, Nginx, lighttpd等。这里将使用最常见的apache服务器。服务器和Django之间通过Python的web服务接口WSGI连接,因此我们同样需要apache下的mod_wsgi模块。

要安装apache2和mod_wsgi

利用WSGIScriptAlias,我们实际上将URL /对应了wsgi接口程序。这样,当我们访问根URL时,访问请求会经由WSGI接口,传递给Django项目mysite。

重启apache2

静态文件

Alias /static/ /home/~~~~/static/

 

/static/和/media/这两个URL的访问将引导向存有静态文件的/home/vamei/static/和/home/vamei/media/,apache将直接向客户提供这两个文件夹中的静态文件。而剩下的URL访问,将导向WSGI接口,由Django动态处理。

Python Django框架 2019(06)

Django有管理用户的模块,即django.contrib.auth。在mysite/settings.py里,这个功能模块已经注册在INSTALLED_APPS中。利用该模块,可以直接在逻辑层面管理用户,不需要为用户建立模型,也不需要手工去实现会话。

可以在admin页面直接看到用户管理的对话框,即Users。在这里创建、删除和修改用户。

点击Add增加用户~~~

在admin页面下,还可以控制不同用户组对数据库的访问权限。可以在Groups中增加用户组,设置用户组对数据库的访问权限,并将用户加入到某个用户组中。

我们创立一个新的app,即users

python manage.py startapp users

增加一个登录表格:

mysite\templates\users\login.html

<h1> Hello World! </h1>
<form role=”form” action=”/users/login/” method=”post”>
       {% csrf_token %}
      <label>Username</label>
      <input type=”text” name=’form_username’>
      <label>Password</label>
      <input name=”form_password” type=”password”>
      <input type=”submit” value=”Submit”>
 </form>
<h1>———————</h1>

views.py中,定义处理函数user_login(),来登入用户: 继续阅读“Python Django框架 2019(06)”

Python Django框架 2019(02)

连接数据库sqlite3

Python Django框架 2019(05)

 

Django将关系型的表(table)转换成为一个类(class)。而每个记录(record)是该类下的一个对象(object)。

 

在models.py中,创建一个只有一列的表

 

from django.db import models

# Create your models here.

class Character(models.Model):
    name = models.CharField(max_length=200)
   
    def __unicode__(self):
        return self.name

++++

在west/views.py中,添加视图

def staff(request):
    staff_list = Character.objects.all()
    staff_str  = map(str, staff_list)
    return HttpResponse(“<p>” + ‘ ‘.join(staff_str) + “</p>”)

 

在west/urls.py增加url导航 继续阅读“Python Django框架 2019(02)”

Python Django框架 2019(04)

GET方法。视图显示和请求处理分成两个函数处理。

模板form.html

<form action=”/west/investigate/” method=”get”>
  <input type=”text” name=”staff_in”>
  <input type=”submit” value=”Submit”>
</form>

在west/views.py中定义一个视图form()来显示表格:

def form(request):
    return render(request, ‘form.html’)

设置urls.py,让对[site]/west/form/的访问,指向该视图。

url(r’^form/’,views.form),

在west/views.py中定义investigate()来处理该表格提交的数据:

def investigate(request):
    rlt = request.GET[‘staff_in’]
    return HttpResponse(“input:   ” + rlt)

设置urls.py,让该处理函数对应action的URL([site]/west/investigate/)。

url(r’^investigate/’,views.investigate),

访问http://127.0.0.1:8000/west/form时,将显示:

继续阅读“Python Django框架 2019(04)”