示例#1
0
def search():
    form = SearchForm()
    if form.validate_on_submit():
        results = wiki.search(form.term.data)
        return render_template('search.html', form=form,
                               results=results, search=form.term.data)
    return render_template('search.html', form=form, search=None)
示例#2
0
def login(id=0):
    searchform = SearchForm()
    form = LoginForm()

    if form.validate_on_submit():
        if verify_login(form.number.data, form.password.data):
            flash('You have logged in!', 'primary')

            if sql_query("SELECT * FROM PartIn WHERE playerid=? AND eventid=?",
                         (user.number, id)):
                flash('You are already attending that event', 'warning')
            elif id != 0:
                sql_query("INSERT INTO PartIn values(?,?)", (user.number, id),
                          commit=True)
                sql_query("UPDATE Events SET num=num+1 WHERE id=?", (id, ),
                          commit=True)

            return redirect(url_for('account'))
        else:
            flash('Wrong password or number!', 'danger')

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template("loginpage.html",
                           title='Login page',
                           user=user,
                           form=form,
                           searchform=searchform)
示例#3
0
def home_page():
    searchform = SearchForm()
    data = []
    events = sql_query("SELECT * FROM Events;")

    for event in events:
        ev = []
        players = []
        list = sql_query("SELECT playerid FROM PartIn WHERE eventid=?;",
                         (event[0], ))
        ev.append(event)
        for i in list:
            player = sql_query("SELECT * FROM Players WHERE number=?;",
                               (i[0], ))
            if player:
                players.append(player[0])
        ev.append(players)
        data.append(ev)

    if searchform.is_submitted():
        data = search_for_events(searchform)

    return render_template("mainpage.html",
                           title="Front page",
                           data=data,
                           user=user,
                           searchform=searchform)
示例#4
0
def account():
    searchform = SearchForm()
    if (user.number == None):
        flash('You have to be logged in to enter that page', 'danger')
        return redirect('login')
    image_source = "static/profile_pics/" + user.photo
    events = sql_query(
        "SELECT * FROM Events INNER JOIN PartIn ON Events.id==PartIn.eventid AND PartIn.playerid=?;",
        (user.number, ))
    data = []
    for event in events:
        ev = []
        players = []
        list = sql_query("SELECT playerid FROM PartIn WHERE eventid=?;",
                         (event[0], ))
        ev.append(event)
        for i in list:
            player = sql_query("SELECT * FROM Players WHERE number=?;",
                               (i[0], ))
            if player:
                players.append(player[0])
        ev.append(players)
        data.append(ev)

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template("account.html",
                           title='Account',
                           user=user,
                           image_source=image_source,
                           data=data,
                           searchform=searchform)
def show_stock():
    form = SearchForm()
    page = request.args.get(get_page_parameter(), type=int, default=1)

    if request.method == 'POST':
        modelQuery = form.data.get('model')
        queried_stock = UsedStock.query.filter_by(model=modelQuery).all()
        pagination = UsedStock.paginate_stock_queries(request, queried_stock,
                                                      page, per_page)

        flash("Invalid Search Parameter")
        return render_template("stock/all_used_stock.html",
                               queried_stock=queried_stock,
                               form=form,
                               pagination=pagination)

    queried_stock = UsedStock.get_all_used_stock()
    offset = UsedStock.pagination_offset(page, per_page)
    pagination_results = UsedStock.query.limit(per_page).offset(offset).all()
    pagination = UsedStock.paginate_stock_queries(request, queried_stock, page,
                                                  per_page)

    return render_template("stock/all_used_stock.html",
                           queried_stock=pagination_results,
                           form=form,
                           pagination=pagination)
示例#6
0
def guestlogin(id=0):
    searchform = SearchForm()
    form = GuestForm()

    if form.validate_on_submit():
        user.new(form.number.data, form.name.data, form.age.data,
                 form.sex.data)
        sql_query("INSERT INTO Players VALUES(?,?,?,?,?,?,?)",
                  (user.age, user.sex, user.name, 'None', None, user.number,
                   user.photo),
                  commit=True)
        sql_query("INSERT INTO PartIn values(?,?)", (user.number, id),
                  commit=True)
        sql_query("UPDATE Events SET num=num+1 WHERE id=?", (id, ),
                  commit=True)

        flash('You can now modify your info and make a password', 'warning')
        return redirect(url_for('account'))

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template('guestlogin.html',
                           title='Guest login',
                           user=user,
                           form=form,
                           id=id,
                           searchform=searchform)
示例#7
0
def change_password():
    searchform = SearchForm()

    if (user.number == None):
        flash('You have to be logged in to enter that page', 'danger')
        return redirect('login')

    form = ChangePasswordForm()
    if form.validate_on_submit():
        if user.password == None or bcrypt.check_password_hash(
                user.password, form.old.data):
            new_hashed = bcrypt.generate_password_hash(
                form.new.data).decode('utf-8')
            ree = sql_query("UPDATE Players SET password=? WHERE number=?;",
                            (new_hashed, user.number),
                            commit=True)
            if ree == None:
                flash('Something went wrong', 'danger')
            else:
                flash('Password changed', 'success')
                return redirect(url_for('account'))
        else:
            flash('Old password wrong', 'danger')

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template('change_password.html',
                           title='Change password',
                           user=user,
                           form=form,
                           searchform=searchform)
示例#8
0
def hello():
    form = SearchForm()

    username = ''
    subreddit = ''
    num_of_records = ''
    choice = ''
    query = ''
    data = ''

    if request.method == 'POST':
        username = request.form['username']
        subreddit = request.form['subreddit']
        num_of_records = request.form['num_of_records']
        choice = request.form['choice']
        query = request.form['query']

        print(username)
        print(subreddit)
        print(num_of_records)
        print(choice)
        print(query)
        print(type(num_of_records))

        if choice == 'post':
            url = f'https://api.pushshift.io/reddit/search/submission/?q={query}&author={username}&subreddit={subreddit}&size={num_of_records}'
        else:
            url = f'https://api.pushshift.io/reddit/search/comment/?q={query}&author={username}&subreddit={subreddit}&size={num_of_records}'

        print(url)

        response = requests.get(url)
        response = response.text
        data = json.loads(response)
        data = data['data']

    # if choice == 'post':
    #     url = f'https://api.pushshift.io/reddit/search/submission/?q={query}&author={username}&subreddit={subreddit}&size={num_of_records}'
    #     response = requests.get(url)
    #     response = response.text
    #     data = json.loads(response)
    #     data = data['data']
    # else:
    #     url = f'https://api.pushshift.io/reddit/search/comment/?q={query}&author={username}&subreddit={subreddit}&size={num_of_records}'
    #     response = requests.get(url)
    #     response = response.text
    #     data = json.loads(response)
    #     data = data['data']

    return render_template('index.html',
                           form=form,
                           username=username,
                           subreddit=subreddit,
                           num_of_records=num_of_records,
                           choice=choice,
                           query=query,
                           data=data)
示例#9
0
def covid():
    form = SearchForm()
    if form.validate_on_submit():
        if (not checkImage(form.state.data)):
            createImage(form.state.data)
        session['image'] = form.state.data + "_" + str(datetime.date.today())
        return redirect(url_for('result'))

    return render_template('search.html', form=form)
示例#10
0
def homepage():
    day_weather = Weather()
    form = SearchForm()
    if form.is_submitted():
        city = form.search_term.data
    else:
        city = 'London'
    day_weather.single_day_weather(city)
    return render_template('index.html',
                           content=day_weather.get_data(),
                           form=form)
示例#11
0
def index():
    city_name = ""
    search_form = SearchForm()
    city_name = search_form.city_name.data
    print(city_name)
    r = requests.get(url.format(city_name)).json()
    weather = {
        'icon': r['weather'][0]['icon'],
        'city_name': r['name'],
        'tempareture': round((r['main']['temp'])-273.15),
        'description': r['weather'][0]['description']
    }
    print(weather)
    return render_template('index.html', search_form=search_form, weather=weather)
示例#12
0
def home():
    form = SearchForm()
    results = []
    if request.method == 'POST':
        if form.validate() == False:
            return render_template("index.html", form=form)
        else:
            search_query = form.search_query.data
            book_search = BookSearch(search_query)
            book_search.make_a_search()
            results = book_search.get_search_results()
            return render_template("index.html", form=form, results=results)

    elif request.method == 'GET':
        return render_template("index.html", form=form, results=results)
示例#13
0
def result(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            title = request.POST.get('title')
            form1 = ArticleForm
            title1 = title
            if Article.objects.all().filter(title=title):
                content1 = Article.objects.get(title=title).content
                user1 = Article.objects.get(title=title).user
                return render_to_response('result.html', {
                    'title1': title1,
                    'user1': user1,
                    'content1': content1
                })

            else:
                return HttpResponseRedirect('/article/default/')
示例#14
0
def auteur(request):
    #on initialise une dictionnaire vide
    c = {}
    c.update(csrf(request))
    # charge le formulaire dans le fichier form.py
    form = SearchForm()
    c = ({'form': form})
    if request.method == 'POST':
        name = request.POST['nom']
        last_name = request.POST['prenom']
        try:
            autor = Photo.objects.filter(photographe__nom=name,
                                         photographe__prenom=last_name)
            info = autor[0]
            c.update({'autor': autor, 'info': info})
        except:
            error = "ce photographe n est pas dans la base de donnee"
            c.update({'error': error, 'form': form})
    c.update(csrf(request))
    return render_to_response('auteur.html', c)
示例#15
0
def create_event():
    searchform = SearchForm()
    form = EventForm()
    if user.number:
        form = EventForm2()

    if form.validate_on_submit():
        number = user.number
        if not user.number:
            number = form.number.data

        last_id = sql_query(
            "INSERT INTO Events VALUES(?,?,?,?,?,?,?,?,?,?)",
            (None, form.header.data, form.sport.data, form.place.data,
             form.city.data, form.time.data, form.description.data,
             form.limit.data, 1, number),
            commit=True,
            get_id=True)
        sql_query("INSERT INTO PartIn VALUES(?,?)", (number, last_id),
                  commit=True)

        if user.number == None:
            ans = sql_query("SELECT * FROM PLayers WHERE number=?",
                            (form.number.data, ))
            if ans:
                return redirect(url_for('login'))
            else:
                user.number = form.number.data
                return redirect(url_for('create_account'))

        return redirect(url_for('home_page'))

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template("create_event.html",
                           title='Create an event',
                           form=form,
                           user=user,
                           searchform=searchform)
示例#16
0
def change_accountinfo():
    searchform = SearchForm()

    if (user.number == None):
        flash('You have to be logged in to enter that page', 'danger')
        return redirect('login')
    form = AccountInfoForm()
    if form.validate_on_submit():
        if bcrypt.check_password_hash(user.password, form.password.data):
            picture_file = user.photo
            if form.photo.data:
                picture_file = save_picture(form.photo.data)
                user.photo = picture_file

            ree = sql_query(
                "UPDATE Players SET name=?, age=?, sex=?, photo=?, bio=? WHERE number=?;",
                (form.name.data, form.age.data, form.sex.data, picture_file,
                 form.bio.data, user.number),
                commit=True)
            user.login(user.number)
            return redirect(url_for('account'))

        else:
            flash('Wrong password', 'danger')

    elif request.method == 'GET':
        form.name.data = user.name
        form.age.data = user.age
        form.sex.data = user.sex
        form.bio.data = user.bio

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template("account_info.html",
                           title='Account info',
                           user=user,
                           form=form,
                           searchform=searchform)
示例#17
0
def main():
    form = SearchForm()
    if form.validate_on_submit():
        isbn = form.isbn.data
        title = form.title.data.lower()
        author = form.author.data.lower()
        pub_year = form.pub_year.data
        form.isbn.data = ""
        form.title.data = ""
        form.author.data = ""
        form.pub_year.data = ""
        books = Book.query.filter(
            or_(Book.isbn.like("%" + isbn + "%"),
                func.lower(Book.author).like("%" + author + "%"),
                func.lower(Book.title).like("%" + title + "%"),
                Book.pub_year == pub_year)).all()
        if books:
            return render_template('index.html', form=form, books=books)
        flash('There is no such a book in our records')
        return redirect(url_for('main'))
    books = Book.query[:20]
    return render_template('index.html', form=form, books=books)
示例#18
0
def deleteaccount():
    if (user.number == None):
        flash('You have to be logged in to enter that page', 'danger')
        return redirect('login')
    form = DeleteAccountForm()
    searchform = SearchForm()

    if form.validate_on_submit():
        if bcrypt.check_password_hash(user.password, form.password.data):
            sql_query("DELETE FROM Players WHERE number=?", (user.number, ),
                      commit=True)
            flash('Account deleted', 'warning')
            logout()
            return redirect(url_for('home_page'))

        else:
            flash('Password is wrong!', 'danger')

    return render_template('deleteaccount.html',
                           title='Delete account',
                           user=user,
                           form=form,
                           searchform=searchform)
示例#19
0
def create_account():
    searchform = SearchForm()
    form = AccountForm()

    if form.validate_on_submit():
        kuva = 'default.png'
        if form.sex.data == 'Female':
            kuva = 'default2.png'
        if form.photo.data:
            picture_file = save_picture(form.photo.data)
            kuva = picture_file
        hashed = None
        if form.password.data:
            hashed = bcrypt.generate_password_hash(
                form.password.data).decode('utf-8')
            sql_query("INSERT INTO Players VALUES(?,?,?,?,?,?,?)",
                      (form.age.data, form.sex.data, form.name.data,
                       form.bio.data, hashed, form.number.data, kuva),
                      commit=True)
            user.login(form.number.data)
            flash('Account created, logged in!', 'primary')

        return redirect(url_for('home_page'))

    elif request.method == 'GET' and user.number:
        form.number.data = user.number

    if searchform.is_submitted():
        data = search_for_events(searchform)
        return home_page()

    return render_template("create_account.html",
                           title='Create an account',
                           form=form,
                           user=user,
                           searchform=searchform)
示例#20
0
def before_request():
    g.user = current_user
    g.search_form = SearchForm()
示例#21
0
  def dispatch_request(self):
    """ This form is plugeable. That means that all what you need to do is
    to install the package and run the url :: /ponywhoosh/
    (You may change it in the config) and get the results.

    Returns:
      Results: The results are sent to the template using bootstrap.
      They are renderized using whether a grid or a table, depending on what
      models did you register.
      By default the first field registered is considered the one that will
      be contained in the tittle of each searh result.
    """

    ctx           = {'form' : SearchForm()}
    except_field  = None
    query, fields = None, None
    wildcards     = True
    form          = SearchForm()

    if self.debug:
      print 'form:'
      pprint(form.data)

    if form.validate_on_submit():

      add_wildcards = form.add_wildcards.data
      except_fields = re.split('\W+', form.except_field.data, flags=re.UNICODE)
      fields    = re.split('\W+', form.fields.data, flags=re.UNICODE)
      models    = re.split('\W+', form.models.data, flags=re.UNICODE)
      query     = form.query.data
      something = form.something.data

      results = self._pw.search(
          query
        , add_wildcards=add_wildcards
        , something=something
        , include_entity=True
        , fields=fields
        , models=models
        , except_fields=except_fields
        , use_dict=False
      )

      if self.debug:
        print 'form = ',
        pprint({
            'query': query
          , 'add_wildcards': add_wildcards
          , 'something': something
          , 'include_entity': True
          , 'fields': fields
          , 'models': models
          , 'except_fields': except_fields
        })

        print "results = "
        pprint(results)

      return render_template(
          'ponywhoosh/results.html'
        , entidades=list(self._pw._entities.keys())
        , action_url_form=self.action_url_form
        , form=form
        , results=results
        , n=results['cant_results']
        , labels=results['results'].keys()
      )

    return render_template(
      'ponywhoosh/index.html'
      , form=form
      , action_url_form=self.action_url_form
      , query=query
    )
示例#22
0
文件: main.py 项目: EEZH/SQLlite
import tkinter as tk
from form import SearchForm
from controls import UsersControl

root = tk.Tk()
# root.title = ("SEARCH FORM")
root.geometry("300x400")

control = UsersControl("test_db.db")
search_form = SearchForm(root, control)

root.mainloop()

#нужно создать форму, куда сами добавляем пользователя
# добавить пользователя в БД
示例#23
0
def search_view(request):
    if request.method == 'POST':
        form_in = request.POST
        # 字典型態{'a':[1,2],'b':[5,6],'c':[]}
        # ======定義使用者本身性別======
        try:
            my_biological_sex = Member.objects.get(user=str(request.user)).biological_sex
        except:
            my_biological_sex = None
        # ======定義使用者本身性別======
        # =========分析找男女==========
        # 輸出 test_biological_sex        1:男女都選或都不選  2:女  3:男
        test_girl = 0
        test_boy = 0
        try:
            if len(form_in['find_girl']) > 0:
                test_girl = 1
        except:
            pass
        try:
            if len(form_in['find_boy']) > 0:
                test_boy = 1
        except:
            pass

        if test_girl == 1:
            if test_boy == 1:
                test_biological_sex = 1
            else:
                test_biological_sex = 2
        else:
            if test_boy == 1:
                test_biological_sex = 3
            else:
                test_biological_sex = 1
        del test_girl, test_boy
        # =========分析找男女==========
        # ======生成搜索用queryset======
        # 已轉換為清單內含字典格式(純PY)    ex : [{'id': 1, 'level_id': 2, 'job_id': 2, 'n.....
        q_set = None
        if my_biological_sex == '男':
            if test_biological_sex == 1:
                # 男女都撈(只撈性向
                q_set = filters_view.find_q_set(Member, 2, 3, 4, 6)
            if test_biological_sex == 2:
                # 撈女生
                q_set = filters_view.find_q_set(Member, 4, 6)
            if test_biological_sex == 3:
                # 撈男生
                q_set = filters_view.find_q_set(Member, 2, 3)
        elif my_biological_sex == '女':
            if test_biological_sex == 1:
                # 男女都撈(只撈性向
                q_set = filters_view.find_q_set(Member, 1, 3, 5, 6)
            if test_biological_sex == 2:
                # 撈女生
                q_set = filters_view.find_q_set(Member, 5, 6)
            if test_biological_sex == 3:
                # 撈男生
                q_set = filters_view.find_q_set(Member, 1, 3)
        else:
            if test_biological_sex == 1:
                # 男女都撈(只撈性向
                q_set = filters_view.find_q_set(Member, 1, 4, 2, 5, 3, 6)
            if test_biological_sex == 2:
                # 撈女生
                q_set = filters_view.find_q_set(Member, 4, 6)
            if test_biological_sex == 3:
                # 撈男生
                q_set = filters_view.find_q_set(Member, 1, 3)
        # ======生成搜索用queryset======
        # ====生成年齡範圍丟入filter=====
        # 生成 age_range = [10,11,12,13,14,15] 若無設定則生成 0 到 100
        if len(form_in['age_min']) != 0 or len(form_in['age_max']) != 0:  # 如果有輸入條件才開始進入過濾器
            if len(form_in['age_min']) == 0:
                age_min = 0  # 如果年齡最小值未輸入  則設為0
            else:
                age_min = int(form_in['age_min'])  # 如果年齡最小值有輸入  讀進來

            if len(form_in['age_max']) == 0:
                age_max = 300  # 如果年齡最大值未輸入  則設為300
            else:
                age_max = int(form_in['age_max'])  # 如果年齡最小值有輸入  讀進來
            q_set = filters_view.filter_age(Member, q_set, age_min, age_max)  # 過濾器參數 ( 資料庫 , 字典 , 最小值 , 最大值 )
        # ====生成年齡範圍丟入filter=====
        # ====生成身高範圍丟入filter=====
        if len(form_in['height_min']) != 0 or len(form_in['height_max']) != 0:
            if len(form_in['height_min']) == 0:
                height_min = 0
            else:
                height_min = int(form_in['height_min'])
            if len(form_in['height_max']) == 0:
                height_max = 300
            else:
                height_max = int(form_in['height_max'])
            q_set = filters_view.filter_height(Member, q_set, height_min, height_max)
        # ====生成身高範圍丟入filter=====
        # ====生成體重範圍丟入filter=====
        if len(form_in['weight_min']) != 0 or len(form_in['weight_max']) != 0:
            if len(form_in['weight_min']) == 0:
                weight_min = 0
            else:
                weight_min = int(form_in['weight_min'])
            if len(form_in['weight_max']) == 0:
                weight_max = 300
            else:
                weight_max = int(form_in['weight_max'])
            q_set = filters_view.filter_weight(Member,q_set,weight_min,weight_max)
        # ====生成體重範圍丟入filter=====
        # ==========過濾血型==========
        blood_type_list = request.POST.getlist('blood_type')  # 搜尋者要求的血型  為一清單型態  紀錄方式為 blood_type_id
        if len(blood_type_list) != 0:  # 如果清單內有東西(有搜尋條件)  才開始過濾
            q_set = filters_view.filter_blood_type(Member, q_set, blood_type_list)
        # ==========過濾血型==========
        # ==========過濾地點==========
        location_list = request.POST.getlist('location')
        if len(location_list) != 0:
            q_set = filters_view.filter_location(Member, q_set, location_list)
        # ==========過濾地點==========
        # ==========過濾信仰==========
        religion_list = request.POST.getlist('religion')
        if len(religion_list) != 0:
            q_set = filters_view.filter_religion(Member, q_set, religion_list)
        # ==========過濾信仰==========
        # ==========過濾關係==========
        relationship_list = request.POST.getlist('relationship')
        if len(relationship_list) != 0:
            q_set = filters_view.filter_relationship(Member, q_set, relationship_list)
        # ==========過濾關係==========
        # ========過濾感情狀態========
        relationship_status_list = request.POST.getlist('relationship_status')
        if len(relationship_status_list) != 0:
            q_set = filters_view.filter_relationship_status(Member, q_set, relationship_status_list)
        # ========過濾感情狀態========
        # ========過濾照片有無========
            # 待決議
        # ========過濾照片有無========
        # ========輸出優先名單========
        q_set_list = []
        for c1 in q_set:
            q_set_list.append([c1,int(q_set[c1])])
        q_set_list = sorted(q_set_list, key=lambda x: x[1], reverse=True)
        # ========輸出優先名單========
        end = q_set_list
        end1 = Member.objects.get(id=9).blood_type_id
        return render(request,'match/end.html',{'end': end,'end1':end1})
    else:
        form = SearchForm()
        ver1 = 'ver_view = %s' % (9131207,)
        return render(request,'match/test.html',{'test': form,'ver1':ver1})